首先,明白壹點,妳所說的VC++以及BC...都是編譯器
要學VC++,當然要先打好語言的根基
學習VC++有相當的內容要學,而最後的深度則看個人的悟性與勤奮了。
1)掌握最新標準的C++。
如果曾經在大學裏自以為學過C/C++,還對dynamic_cast/static_cast/template/try/catch/throw/stl/...感到
陌生,那妳該Refresh壹下新的ANSI C++標準了。 ----此與VC++無甚關聯,g++/bcb均有所支持。
(2個月)
2) 學習SDK編程;:-O (6個月) 痛苦是暫時的,必要的,堅持就是勝利! 建議用
Lccwin32/Masm32/Tasm編寫小而精的工具軟件; "Windows Programming Guide."
"Advanced Windows programming "
3) 研究MFC源代碼。(6個月)
不要被壹大堆的宏所蒙蔽,just track and dig into it!! 在知道MFC如何擴展,包裝SDK之後,自可功
力漸進,不被其MFC系統框架所困繞。
"MFC Internals"
4) 研究OLE/COM技術。
COM/ActiveX技術是MS的核心技術,只有徹底洞察其理論精髓才可以體會現在的
操作系統的技術趨勢,以不變應萬變。
在此結合本人的壹些經驗,我再摘引本人收藏的2個經典,肯定益處多多
C++50經典
1.把C++當成壹門新的語言學習(和C沒啥關系!真的。);
2.看《Thinking In C++》,不要看《C++變成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者所以就不看;
4.不要被VC、BCB、BC、MC、TC等詞匯所迷惑——他們都是集成開發環境,而我們要學的是壹門語言;
5.不要放過任何壹個看上去很簡單的小編程問題——他們往往並不那麽簡單,或者可以引伸出很多知識點;
6.會用Visual C++,並不說明妳會C++;
7.學class並不難,template、STL、generic programming也不過如此——難的是長期堅持實踐和不遺余力的博覽群書;
8.如果不是天才的話,想學編程就不要想玩遊戲——妳以為妳做到了,其實妳的C++水平並沒有和妳通關的能力壹起變高——其實可以時刻記住:學C++是為了編遊戲的;
9.看Visual C++的書,是學不了C++語言的;
10.浮躁的人容易說:XX語言不行了,應該學YY;——是妳自己不行了吧!?
11.浮躁的人容易問:我到底該學什麽;——別問,學就對了;
12.浮躁的人容易問:XX有錢途嗎;——建議妳去搶銀行;
13.浮躁的人容易說:我要中文版!我英文不行!——不行?學呀!
14.浮躁的人容易問:XX和YY哪個好;——告訴妳吧,都好——只要妳學就行;
15.浮躁的人分兩種:a)只觀望而不學的人;b)只學而不堅持的人;
16.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裏;
17.C++不僅僅是支持面向對象的程序設計語言;
18.學習編程最好的方法之壹就是閱讀源代碼;
19.在任何時刻都不要認為自己手中的書已經足夠了;
20.請閱讀《The Standard C++ Bible》(中文版:標準C++寶典),掌握C++標準;
21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看;
22.別指望看第壹遍書就能記住和掌握什麽——請看第二遍、第三遍;
23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成開發環境的搖籃上,要學會控制集成開發環境,還要學會用命令行方式處理程序;
25.和別人壹起討論有意義的C++知識點,而不是爭吵XX行不行或者YY與ZZ哪個好;
26.請看《程序設計實踐》,並嚴格的按照其要求去做;
27.不要因為C和C++中有壹些語法和關鍵字看上去相同,就認為它們的意義和作用完全壹樣;
28.C++絕不是所謂的C的“擴充”——如果C++壹開始就起名叫Z語言,妳壹定不會把C和Z語言聯系得那麽緊密;
29.請不要認為學過XX語言再改學C++會有什麽問題——妳只不過又在學壹門全新的語言而已;
30.讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學會了C++;
31.學習編程的秘訣是:編程,編程,再編程;
32.請留意下列書籍:《C++面向對象高效編程(C++ Effective Object-Oriented Software Construction)》《面向對象軟件構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》;
33.記住:面向對象技術不只是C++專有的;
34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光盤中有源代碼;
35.把在書中看到的有意義的例子擴充;
36.請重視C++中的異常處理技術,並將其切實的運用到自己的程序中;
37.經常回顧自己以前寫過的程序,並嘗試重寫,把自己學到的新知識運用進去;
38.不要漏掉書中任何壹個練習題——請全部做完並記錄下解題思路;
39.C++語言和C++的集成開發環境要同時學習和掌握;
40.既然決定了學C++,就請堅持學下去,因為學習程序設計語言的目的是掌握程序設計技術,而程序設計技術是跨語言的;
41.就讓C++語言的各種平臺和開發環境去激烈的競爭吧,我們要以學習C++語言本身為主;
42.當妳寫C++程序寫到壹半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將余下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤並重新設計和編寫(參見43);
43.別心急,設計C++的class確實不容易;自己程序中的class和自己的class設計水平是在不斷的編程實踐中完善和發展的;
44.決不要因為程序“很小”就不遵循某些妳不熟練的規則——好習慣是培養出來的,而不是壹次記住的;
45.每學到壹個C++難點的時候,嘗試著對別人講解這個知識點並讓他理解——妳能講清楚才說明妳真的理解了;
46.記錄下在和別人交流時發現的自己忽視或不理解的知識點;
47.請不斷的對自己寫的程序提出更高的要求,哪怕妳的程序版本號會變成Version 100.XX;
48.保存好妳寫過的所有的程序——那是妳最好的積累之壹;
49.請不要做浮躁的人;
50.請熱愛C++!
曾經有壹個人寫了這個東西,我覺得有些道理,就貼出來吧
C++/OPP/OOD系列:
層級壹:語法/語意(C++)
[Lippman2000] Essential C++
Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276 pages
Essential C++ 中文版 ,侯俊傑 譯,282頁
[Gregory95] C++:The Core Language
C++:The Core Language by Gregory Satir 1995 O'Reilly
C++語言核心,張銘澤 譯 ,236頁
[Deitel98] The Complete C++ Training Course
The Complete C++ Training Course 2/e by Harvey M.Deitel 1998 Prentice Hall
C++大學教程(第二版),邱仲潘等 譯,816頁
[Stevens2000] Standard C++ Bible
Standard C++ Bible 2000 Al Stevens IDG
標準C++寶典,林麗閩等 譯,766頁
[Eckel2000] Thinking in C++
Thinking in C++ 2/e Bruce Eckel 2000 1470 pages Prentice Hall
C++ 編程思想,劉宗田等 譯,420頁
[Lippman98] C++Primer
C++ Primer,3rd Editoin,by Stanley Lippman and Josee Lajoie
Addison Wesley Longman,1998 1237 pages
C++ Primer 中文版,侯俊傑 譯,1999,1237頁
[Struostrup2000] The C++ Programming Language
The C++ Programming Language,Special Editoin,by Bjarne Stroustrup
Addison Wesley Longman,2000,1017 pages
C++程序語言經典本,葉秉哲 譯,儒林 1999
[ANSI C++] C++規格書 1998.9.1 PDF格式
ANSI C++ 1996 Draft
層級二:專家經驗(C++/OOP)
[Meyers96] More Effective C++
More Effective C++,by Scott Meyers,Addison Wesley,1996,318pages
More Effective C++中文版,侯俊傑,培生 2000. 318頁
[Meyers98] Effective C++
Effective C++,Second Edition,by Scott Meyers,Addison Wesley Longman,1998.256pages
Effective C++ 2/e 中文版,侯俊傑,培生 2000.256頁
[Sutter99] Exceptional C++
Exceptional C++,by Herb Sutter,Addison Wesley Longman,2000.208pages
Exceptional C++中文版,侯俊傑,培生 2000.248頁
[Sutter2001]More Exceptional C++
More Exceptional C++ by Herb Sutter,Addison Wesley Longman,2001.
層級三:底層機制(C++ Object Model)
[Ellis90] The Annotated C++ Reference Manual
The Annotated C++ Reference Manual,by Margaret A.Ellis and Bjarne Stroustrup
Addison Wesley Longman,1990,447 pages.
[Lippman96] Inside the C++ Object Model
Inside the C++ Object Model,by Stanley Lippman,Addison Wesley Longman,1996,280pages
深度探索C++物件模型,侯俊傑 譯
層級四:設計觀念的復用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object Oriented Software,
by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides,Addison Wesley,1995.395pages
設計模式,李英軍等譯,機械工業出版社,2000.254頁
[Alex2001]Modern C++ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu,Addison-Wesley,2001,352Paper
Genericity/STL系列:
第壹個境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,by Nicolai M.Josuttis,
Addison Wesley 1999.799pages
第二個境界是了解泛型技術的內涵與STL的學理:
[Austern98]:Generic Programming and the STL -Using and Extending the C++ Standard
Template library,by Matthew H.Austern,Addison Wesley 1998.548page
第三個境界是擴充STL:
[Stepanov2001]:C++ Standard Template Library by P.J.Plauger,Alexander A.Stepanov,
Meng Lee,David R.Musser,Prentice Hall 2001
這些就是妳應該看的書,如果妳想成為高手。