學習C++從哪入手?
很多人把學習C++語言的過程和學習VC++的過程一樣,那就大錯特錯了,這樣會給大家帶來許多彎路的,研究很久的VC++后,反過來還是得回過頭來學習C++語言,下面說一下學習C++感想。
在C#中雖然還沒有對泛型編程的支持,但是相信在將來也一定會加入這一功能),模板是C++中比較復雜的部分,但是作為一個真正的C++程序員,這部分很重要。尤其是對C++標準程序庫的掌握尤為重要。
剛開始的時候千萬不要直撲VC中的各種向導和設計器。因為依賴開發環境生成的很多代碼會把我們搞糊涂,也不利于我們學習C++語言本身。我的建議就是生成一個空的控制臺工程,然后自己向里面添加文件。
- //robindy/list.cpp
- #include <iostream>
- #include <list>
- using namespace std;
- int main()
- {
- list<char> coll;
- for(char c = \'a\'; c <= \'z\'; ++c)
- {
- coll.push_back(c);
- }
- list::const_iterator pos;
- for(pos = coll.begin(); pos != coll.end(); ++pos)
- {
- cout << *pos << \' \';
- }
- cout << endl;
- return 0;
這段程序用到了標準模板庫,在屏幕上打印字符a~z,其中main函數的標記式只有兩種是被C++標準委員會接受的,只有以下兩種寫法是符合C++標準的,是可移植的。即:
- int main()
- {
- }
- 和
- int main(int argc, char* argv[])
- {
- }
我不建議初學者一開始就從模板庫入手,但是我建議應該逐漸地有意識地學習模板庫。如我們應該熟悉cout和cin的用法(位于iostream),而減少使用老式的C函數庫中printf和scanf等。
從控制臺入手的好處就是避免我們理解VC中向導等工具生成的其他代碼,整個程序的流程很清楚。新手學習VC的一大難點就是搞不清楚整個程序的流程(從那條語句開始執行,然后從那條語句退出。MFC做了太多封裝,掩蓋了事實的真相。
通過控制臺我們可以很快地學習C++語言中的很多新特性。如類的封裝、繼承和多態等。通過這個時期的學習,要能夠掌握三個東西:C++關鍵字、語法(重點是和面向對象有關的,以及模板)、學習C++感想(知道怎么使用即可,要徹底掌握需要很多時間和精力)。至于與界面有關的東東(MFC中很大一部分是與界面相關的類,所以我認為MFC很臃腫而無聊!回頭看過以前用MFC寫的程序,有一種“垃圾”的感覺。)
自己做個測試:寫一個控制臺程序,在其中體現出類的繼承,函數重載,動態多態(通過虛函數實現),數據封裝,C++標準庫的運用。
如果你能夠輕松搞定,恭喜你,你已經通過學習C++感想關了。不過C++實在是一個復雜的東東,其中有各種千奇百怪的語法現象,如果沒有三、五年的功力,千萬不要說自己懂C++。
【編輯推薦】