C++,夢寐以求的課程終於到來了,終於和seven上同樣的課程了。
在三門物件導向程式設計課程(C++,JAVA,C#)中必選一門,我自然毫不猶豫地選了C++,從此開始了我的C++之路,我想我會在這條路上一直走下去,在任何情況下我都不會放棄C++。
至於物件導向程式設計,之前一直不知道這是怎麼一回事,剛開始學C++我以為是再學習一種語言,只不過這種語言更強大而已。在第一節課上,馬銳老師給我們介紹了C++的強大之處,很多大型應用程式都是用C++來開發的,微軟的產品更是如此。當然C++中最重要的其實不是語言,而是一種思想,物件導向的思想,語言其實是次要的,這一點後來我才知道。
馬老師給我們推薦了好幾本參考書,但是都沒有要求我們一定要買,其實看看她的課件就行。說實話,課件上的內容很詳細,馬老師也講課很不錯,但對於我這種大一C語言基礎不好的同學還是覺得有點吃力。我想到,既然是學習一門新的語言,那就不能重蹈C語言學習時的覆轍。於是上完第一次課我就去把seven那本巨厚無比的《C++大學教材》(第五版)拿了過來,開始耐著性子看,有些講解控制流程程if,else這些我都略過了,這些簡單的設計和C語言幾乎一樣,我重點看C++與C語言不同的地方,有些文法和標識符,更多的是書上寫的思想,例如繼承和多態,虛函數等等。這本書寫的很不錯,就算之前沒有接觸過語言也可以直接看,seven整個大一都是學的這本書,而我學這本書是一個學期,那半年多的時間其實就用C語言的基礎抵掉了。
每次馬老師講完她PPT的一個章節,課後我就把書中相應的內容看掉,如今看書上的代碼實在是一種享受,通過不斷比較得出為什麼要採用這種方法編程式,以及這樣的好處是什麼,外國人的書總是這麼淺顯易懂而又讓人眼前一亮。由於那時每天中午都在教室趴著睡覺,這本厚厚的書居然成為了我的枕頭,雖然很硬但是我還是能睡著,有時候口水都流在封面上了,不知道是不是枕著C++睡覺的緣故,所以我對於C++和物件導向的思想有了比較好的基礎,當然我知道這僅僅是基礎,物件導向的思想博大精深,完全可以脫離於語言,繼承和多態只是其中的很小的方面。
還是提提老師吧,馬老師應該算我們學院比較牛的老師了,對我們的要求感覺也比較高,她的教學精神更值得讚揚。有一次馬老師喉嚨發炎生病了,課程中斷了一次,下一次課她病沒好就堅持來上了,講課的時候老師咳嗽,而且聲音很低,她就讓我們往前坐,耐著性子給我們講課,那節課上的內容並不是很多,為了不落下進度,她要求給我們補一次課,補課時間安排在愚人節那天晚上。到了那一天我們還以為老師給我們開了一個玩笑,不過還是都去上課了,一晚上兩節課講了很多內容,下課後馬老師還與我們聊天,她聊到西方過愚人節是在上午,我們就開玩笑說以為老師騙我們要上課的,馬老師立刻假裝嚴肅的糾正說現在已經不是愚人節了。那次課她講到了double
Q,我也忘了是C++中的什麼概念,就直接問老師這不是QQ嗎?全班瞬間很囧。
C++的嚴格要求從作業和考試也能看出來,平時要做練習還要編程式,由於是用物件導向的方法編程式,不像網路教室OJ那種直接通過判斷你通過測試案例數來評分,馬老師會找研究生一道題一道題看,沒用C++思想的一律打回重編。由於吸取了大一的教訓,我儘可能的多編程,C++程式也是算提交比較快的,平時為了熟悉文法還上OJ上用C++編寫C語言程式,見證了string和STL的強大,可惜馬老師並不讓我們在作業中用STL。最後一道選做題,是象棋博弈,據說做出來總成績加十分,許昌達把他搞博弈的作品交了上去,我參考了邴傑的演算法編了一個很簡單的交了上去,後來看成績,感覺都沒人能加分。
由於PPT是英文的,考試時間也自然是英文的,這一點選課之前沒有說明,不過馬老師為了照顧一下我們考試開始後先把卷子上面的題目用中文大致講了一遍,讓我們都明白了題目的意思,有些填空題聽她講到空白處都覺得她要把答案一口說出來了。雖然這耽誤了我們點考試時間,但對於做題協助很大。
可以說,C++應該算是我認真學並且學的最好的一門課了,至於後面的JAVA,其實都是打醬油的課程。物件導向的思想也許在java中能得到更好的體現,但我還是喜歡C++,毫無理由的喜歡。