① 求vc技術內幕第四版中文版。[email protected] 謝謝了。
已經發了
② 介紹一本好的VC++的書籍
編寫程序是一項系統而繁瑣的工作,它不僅需要程序設計人員具有一定的功底,更需要有良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更易於讀懂和修改,更重要的是,它可以使程序的結構更加合理,有助於提高程序的執行效率。下面是我在程序設計中總結的一些經驗,供大家參考。
設計順序
在我們剛開始學習程序設計的時候,要編寫一個程序,總是先進行一番構思,然後就一邊寫代碼一邊調試。這種方法一般只適用於非常小的程序,根據軟體工程的特點,如果對所有程序都還按這種方法進行設計,是不合理的。
其實,設計程序就像我們蓋高樓大廈,首先要設計圖紙,然後動工。所以,對於個人編寫程序來說,應遵循以下步驟:
1、問題分析:對我們要使用程序設計手段去解決的問題進行系統地分析,了解程序是做什麼的,要達到一種什麼樣的效果等。
2、結構設計:也就是對程序的整體框架進行設計,設計出我們需要使用的模塊等等,並畫出流程圖。
3、用戶界面設計:在此,我們要設計出用於與用戶交互的輸入輸出界面。
4、代碼設計:在這個步驟中,我們要進行代碼的編寫。
5、調試:對程序中正在發生或可能發生的各種錯誤進行處理。
6、維護:通俗地說,維護就是對程序進行升級,對原有錯誤進行修改。
對於以上幾個步驟,我想大多數人會認為代碼設計最為重要,但如果程序的結構尚未清楚,我們在編寫代碼的時候就會發生混亂,一個程序性能的好壞,主要還是取決於它的結構是否合理。因此,在程序設計中,我們要盡可能注意這一點,這樣才能使我們的程序更加完善。
設計環境
一個良好的編程環境可以使我們在編寫程序時,不至於造成各種資源的紊亂,還可以避免資源的丟失。建議大家要在放源程序的目錄下建立「Programs」文件夾;然後再以你要編寫的程序名和版本為名建立一個文件夾,用於存放整個源程序以及各種資源;最後,分別建立幾個文件夾,「Documents」:用於存放程序文檔,包括流程圖等;「Resource」:用於存放圖片,聲音,影片等資源;「Debug」:用於存放調試的程序。「Release」:用於存放最終釋放的程序。
例如:我們要製作一個英語學習軟體,名為「English」,版本為1.0,那麼我們的編程環境中應存在以下文件夾:
[DRIVE]:\\…\\Programs\\English1\\Debug\\
[DRIVE]:\\…\\Programs\\English1\\Documents\\
[DRIVE]:\\…\\Programs\\English1\\Resource\\
[DRIVE]:\\…\\Programs\\English1\\Release\\
另外,最好再建立一個專門的文件夾,用於存放各種模塊,以便能實現代碼的重用,這樣,我們就不用在每次寫程序時,都重寫所有的模塊,編程速度會有很大的提高。
設計技巧
代碼如果寫得很亂,程序便不易被閱讀與修改,所以,在編寫代碼時要注意以下幾點:
(1)注釋:寫注釋雖然要佔用一定的時間,但在閱讀和修改代碼時卻會節省很多的時間。所以,建議大家在定義一個函數時,在函數的第一行寫出函數的作用,再用一行解釋函數的參數,並在每個變數的定義語句後注釋出其作用。
(2)變數和函數的命名:每個程序都會使用很多的變數和函數,如果隨意命名變數與函數,每次使用時還得在變數或函數的定義語句處查出它的數據類型及名稱,而且隨意命名還會造成變數與函數重復定義。
建議大家使用匈牙利命名法,方法是:每個變數或函數的開頭都以其數據類型的縮寫命名,然後再加上代表這個變數或函數的作用的英文單詞簡寫共同組成變數或函數的名稱。例如:要定義用於計數的整型變數count,其定義語句為C\\C++:int icount; Basic:Dim icount as Integer。以這種方法定義,不僅可以有效地避免變數與函數的混亂與重復定義,還可以保證數據類型的匹配。
(3)控制項命名:如果在Windows下編程,你有可能會大量地使用控制項,如果不對控制項名嚴加管理,會造成很大程度的混亂,因此,建議在給控制項命名時,以控制項類型縮寫再加上代表這個控制項作用的英文單詞的簡寫共同組成此控制項的名稱。例如:你要命名一個按鈕控制項,作用是進行刪除操作,那麼控制項名可以命名為cmdDel。
並不是每個人都能成為頂級程序員,但我們都在程序員之路上不斷進步,追求更完美、更專業化的程序。不妨好好改造一下你的程序,你會從中感受到很多好處
/////////////////////////////////////////////////////////////////////
、《計算機組成原理》(熟悉)
2、《數據結構》(掌握)
3、《操作系統》(了解->熟悉)
4、《The C language》(掌握)
5、《編譯原理》(了解原理)
6、《匯編語言》(了解)
7、《計算機網路》(了解)
8、《軟體工程》(了解)
9、《關系資料庫》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向對象設計》(掌握;結合C++學習)
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向對象高效編程》
8、《設計模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推薦)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技術內幕》
14、《MFC 深入淺出》
15、《軟體需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序員參考手冊》
19、《用TCP/IP進行網際互連》
20、《COM 本質論》
都是些學習編程的好書
很多!
《c++primer》
《the c++ programming language》
《vc技術內幕》
《c++編程金典》
《c++大學教程》
。。。。。。。。。。。。。。。。。。。
③ 誰有VC技術內幕第四版中文的,要清晰的,請發一份給我:[email protected]
④ vc++技術內幕 電子版
[VC.深入詳解].孫鑫.余安萍.掃描版.pdf
去搜索,講的很詳細。
⑤ 請問有人有vc++技術內幕的chm格式的中文版嗎
我有chm版的是英文,中文版的是pdf的,要否?
⑥ 誰能推薦一些關於VC++和Matlab的原版書
[精華] 提供一些c書下載地址! 需要的朋友來~~
--------------------------------------------------------------------------------
http://www.chinaunix.net 作者:hancang 發表於:2006-03-16 22:35:15
【發表評論】【查看原文】【C/C++討論區】【關閉】
C++編程思想——C++的神奇書籍 13.82 MB
·本書作者根據自己學習C++的親身體會及多年教學經驗,用簡單的例子和簡練的敘述講解C++編程,別具特色。 全書共分十八章,內容涉及對象的演化、數據抽象、隱藏實現、初始化與清除、函數重載與預設參數、輸入輸出流介紹、常量、內聯函數、命...
錢能C++程序設計教程 6.8 MB
·錢能C++程序設計教程雖然是很老的書,不過總算是國產書中質量不錯中的一本,適合C++初學者....
The C++ Standard Library 4.24 MB
·雖然也是老書,但是夠經典,:-) Programming with the C++ Standard Library can certainly be difficult, but Nicolai Josuttiss The...
C++PrimerPlus 4thEdition 4.34 MB
·The fourth edition presents the ANSI C++ standard beginning with a discussion of the essential elements of C++ program...
C++ Primer 中文版(第三版)完全版 3.81 MB
·C++ Primer的第三版結合了Stanley Lippman的實踐經驗和Josée Lajoie對於ANSI/ISO標准C++的深入理解。這本指導書的第三版已經被重新改寫過,以便更加精確地講述標准C++的特性和用法。在本書中,對於C...
Exceptional C++ 351 KB
·本書詳細地討論了如何編寫健壯高效的代碼以及模塊設計技術。本書採用了自問自答的語言風格,它討論了實際程序設計中普遍存在的,又非常不易察覺的問題,並且進行了深刻的分析,提出了具有廣泛意義的解決方案。本書值得每個想成為優秀c++程序員的人閱讀...
Inside the C++ Object Model 2003-12-17 741 KB 378
·Bestselling author Stanley B. Lippmans Inside the C++ Model provides valuable insight into some of the internal...
Secure Programming Cookbook for C and C++ 1.34 MB
·Secure Programming Cookbook for C and C++...
The C++ Programming Language 3rdEdition 3.99 MB
·In this brand-new third edition of The C++ Programming Language, author Bjarne Stroustrup, the creator of C++, ...
C-C++ 最佳編程指南 41.28 MB
·C-C++ 最佳編程指南...
上述書籍下載地址是
http://newzone.vicp.net/softdown/SoftList/Catalog_36_SoftTime_Desc_1.html
深度探索C++對象模型 7.86 MB
高質量C++編程指南 326 KB
C與C++中的異常處理 53 KB
C++ Primer 題解 6.57 MB 0
Effective C++中文版 255 KB
Essential C++中文版(全) 7.88 MB
C++視頻學習(RM) 1200 MB
C++沉思錄 PDF版 7.46 MB
Visual C++ 運行庫參考手冊 8.43 MB
Visual C++ 6.0 資料庫編程大全 6 10.86 MB
Visual C++經典 13.53 MB
Visual C++編程技巧 241 KB 896
Optimizing C++ 370 KB 9976
數據結構 C++ 語言描述 20.88 MB
C++ In Action 1.51 MB
Visual.C++技術內幕 78.57 MB
C++.Primer.3rd.Edition 中文完美版 4.5 MB
上述書籍去
http://www.sron.net裡面找吧~~
:em17: :em17: :em17: :em11: :em11: :em11:
找到好電子書也告訴我啊~~
--------------------------------------------------------------------------------
1.vc++技術內幕第四版 (潘愛民)
ftp://210.32.157.56/課件/c++primer/vc++技術內幕IV(潘愛民).rar
2.C++經典對話系列
中文:http://www.jka77.com/book/cvst_cn.chm
3.MFC Windows 程序設計(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暫無,製作中...
4.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
5.More Effective C++中文版-zhc譯
http://cable.pchome.net/development/reference/MEC0410.zip
6.More Effective C++中文版-候捷譯
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
7.Essential C++中文版(全)-候捷譯
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
8.深入淺出MFC 2/e
http://218.30.21.125:8084/ebook/programme/mfc2e.zip
9.代碼大全中文版
http://www.delphidevelopers.com/docs/tecsubject/cc/CodeComplet110.zip
11.C++經典對話系列
中文:http://www.jka77.com/book/cvst_cn.chm
12.MFC Windows 程序設計(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暫無,製作中...
13.數據結構 C++ 語言描述(中文版)
http://www.code-labs.com/manual/c_c015.zip
14.java編程思想中文版
ftp://202.118.72.12/pub/doc-book/Java/Java編程思想.zip
15.C++標准庫英文版
ftp://166.111.64.4/incoming/新文件夾/f/The%20C++%20Standard%20Library(with%20TOC).pdf
16.Windows核心編程
英文:http://www.fmdstudio.net/book/prgapps4.zip
17.TCP-IP詳解卷1:協議
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷1:協議.pdf
18.TCP-IP詳解卷2:實現
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷3:TCP事務協議,HTTP,NNTP.pdf
19.TCP-IP詳解卷3:TCP事務協議
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷2:實現.pdf
20.實用演算法的分析與程序設計
ftp://202.204.8.10/[4]%20編程資源/[%20書籍資料%20]/[演算法與數據結構]/實用演算法的分析與程序設計.rar
21.vc++技術內幕第四版 (潘愛民)
ftp://210.32.157.56/課件/c++primer/vc++技術內幕IV(潘愛民).rar
22.C++ Primer英文版:
http://computerstep.w18.net/C/C++%20Primer.zip
23.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
24.More Effective C++中文版-zhc譯
http://cable.pchome.net/development/reference/MEC0410.zip
25.More Effective C++中文版-候捷譯
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
26.Essential C++中文版(全)-候捷譯
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
27.Programming Windows程式開發設計指南-Petzoldi著 余孟學 譯
中文版:http://www.nethovel.com/resources/ProgrammingWindows_tw.chm
英文版:http://www.nethovel.com/resources/Petzoldi.chm
28.WinAsm32匯編教程- Iczelion
http://www.nethovel.com/resources/winasm.chm
29.Windows 95 程序設計指南-候捷譯
http://www.nethovel.com/resources/win95adg.zip
30.Thinking in C++ 2nd Edition(C++編程思想)
英文版:http://www.nethovel.com/resources/ThinkinginC++.zip
中文版:http://www.dingbing.com/book/thinkc.zip
31.人月神話-中文版
http://www.goodassister.com/book/rysh.pdf
32.The C++ Programming Language英文
http://computerstep.w18.net/C/The%20C++%20Programming%20Language.rar
33.VC技術內幕第五版 http://www.helpwork.com/downdata/book/programming/vc/book/vc++2/invcpp5.chm
34.com技術內幕
http://www.helpwork.com/book/html/user/download.asp?id=1123
35.com+技術內幕
http://www.helpwork.com/book/html/user/download.asp?id=952
36.新編 Windows API參考大全
http://www.4046.com/nnsrc/down/WindowsAPIdq.rar
37.The C programming Language // By Brian W. Kernighan and Dennis M. Ritchie
下載地址:http://www.jka77.com/book/The_C_programmin.chm
38.C語言編程手冊
下載地址:http://www.jka77.com/book/CL.chm
39.Delphi 7高效資料庫程序設計
By 李維
下載地址:http://www.codestudy.net/book/download.asp?id=1163&;sort=5
40.Windows網路編程(第2版)
By Anthony Jones,Jim Ohlund 清華大學出版社
下載地址:英文版:http://www.guxiang.com/epubcn/readings/diannaotushu/500/download/1107/network_prog_for_win_2nd.zip
41.Windows2000編程技術內幕
By Mickey Williams 機械工業出版社
下載地址:ftp://ftp.frontfree.net/Pub/Books/C&;C++/VC/Windows2000編程技術內幕.rar
42.數據倉庫
By W.H.Inmon 清華大學出版社
下載地址1:http://tips.9hao.com/vvbksd/20011120/數據倉庫.zip
下載地址2: ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%CA%FD%BE%DD%B2%D6%BF%E2/
43.編碼的奧秘
By Charles Petzold 機械工業出版社
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%C2%EB%B5%C4%B0%C2%C3%D8/
44.編譯原理及實踐
By Louden, K.C 機械工業出版社
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%D2%EB%D4%AD%C0%ED%BC%B0%CA%B5%BC%F9/
45.Inside C++ Object Model(深度探索C++對象模型)
By Lippman 候捷譯
下載地址:http://www.jka77.com/book/inside-the-cpp-object-model.pdf
46.C++標准程序庫
By Josuttis
下載地址1:http://www.codestudy.net/book/download.asp?id=1205&;sort=5
下載地址2: ftp://ftp.math.nankai.e.cn/Ebook/C_C++/The Cpp Standard Library.pdf
47.STL源碼剖析
By 候捷
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/C_C++/STL源碼剖析--侯捷.pdf
48.C++批判(第三版) -看看C++的壞話!
By I don't know
下載地址:http://www.jka77.com/book/CPPPP.pdf
49.程序設計實踐
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/%B3%CC%D0%F2%C9%E8%BC%C6%CA%B5%BC%F9/
50.c++沉思錄
By Andrew Koenig Barbara Moo 人民郵電出版社
下載地址:http://www.codestudy.net/book/download.asp?id=1261&;sort=5
51.C++Builder4技術內幕 (這本書俺不知道好不好)
By I don't Know
下載地址:http://www.codestudy.net/book/download.asp?id=1254&;sort=5
52.下面兩本書一般大家硬碟里都有的吧,而且很老了,但是為了全面,就提上來吧
(1)Windows 95 程式設計指南 - 候捷
下載地址:http://jjhou.csdn.net/win95-a-developers-guide.pdf
(2)Windows 95 系統程式設計大奧秘 - 候捷
下載地址:http://jjhou.csdn.net/windows95-system-programming-secrets.pdf
53. 中國大網路全書·數學
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/中國大網路全書/中國大網路全書·數學.pdf
54、4.0M Bjarne Stroustrup - The C++ Programming Language
http://www.u-n-f.com/books/archive/The%20C++%20Programming%20Language.tar.gz
55、1.0M Richard Stevens - TCP-IP Illustrated
http://www.u-n-f.com/books/archive/TCP-IP%20Illustrated.tar.gz
56、4.5M Randall Hyde - Art Of Assembly
http://www.u-n-f.com/books/archive/Randall%20Hyde%20-%20Art%20Of%20Assembly.tar.gz
57、2.1M M. Abrash - Zen of Graphics Programming
http://www.u-n-f.com/books/archive/M.%20Abrash%20-%20Zen%20of%20Graphics%20Programming.zip
58、249k Kernighan and Ritche - The C Programming Language
http://www.u-n-f.com/books/archive/Kernighan%20and%20Ritchie%20-%20The%20C%20Programming%20Language.zip
59、3.3M Bruce Schneier - Applied Cryptography
http://www.u-n-f.com/books/archive/Bruce%20Schneier%20-%20Applied%20Cryptography.zip
60、php4_Grundlagen_und_Profiwissen
http://www.u-n-f.com/books/archive/lamp/PHP4_Grundlagen_und_Profiwissen.pdf
61.《C++ Builder高級編程技術》
http://www.dingbing.com/book/builder.zip
62.《VC++ 6.0 TLR 模板庫參考手冊》
http://www.easysea.com/diannao/download/prog/c/mbkc.zip
63.《BORLAND C++ BUILDER 實用培訓教程》
http://202.101.232.120/book/openfile.asp?id=223&;filename=BC98_CB526.zip
64.《Delphi高級開發指南》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_gjkfzn_for3.rar
65.《新編 Windows API參考大全》
ftp://book:[email protected]/pro/delphi/新編Windows_API_參考大全.rar
66.《Delphi深度歷險-附書源碼》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_sdlx_code.rar
67.《Delphi 7高效資料庫程序設計》
ftp://book:[email protected]/pro/delphi/李維的新書《Delphi7高效資料庫程序設計》.rar
68.《Delphi7開發指南》
ftp://book:[email protected]/pro/delphi/delphi7開發指南.rar
69.《Delphi6集成開發環境》
ftp://book:[email protected]/pro/delphi/Delphi6集成開發環境.rar
70.《Delphi6資料庫編程》
ftp://book:[email protected]/pro/delphi/Delphi6資料庫編程.rar
72.《Delphi5.xADO_MTS_COM+高級程序設計篇》
ftp://book:[email protected]/pro/delphi/Delphi5.xADO_MTS_COM+高級程序設計篇.rar
73.《VISUAL BASIC 編程標准》
http://www.dingbing.com/book/vb.zip
74.《Visual Basic6.0中文版程序員指南》
http://www.easysea.com/diannao/download/prog/vb/zwbc.zip
75.《Visual Basic 6.0 控制項參考手冊》
http://www.easysea.com/diannao/download/prog/vb/kjck.zip
76.《Visual Basic 6.0中文版語言參考手冊》
http://www.easysea.com/diannao/download/prog/vb/zwby.zip
77.《Visual Basic 6.0 開發寶典》
http://www.easysea.com/diannao/download/prog/vb/kfbd.zip
78.《Visual Basic 6.0 實例教程》
http://www.easysea.com/diannao/download/prog/vb/sljc.zip
79.《VB 6.0 中文版實用參考手冊》
http://www.easysea.com/diannao/download/prog/vb/syck.zip
80.《Visual Basic 6開發人員指南》
http://www.easysea.com/diannao/download/prog/vb/kfzn.zip
81.《VB 和 SQL Server 編程指南(第五版)》
http://www.easysea.com/diannao/download/prog/vb/bczn.zip
82.《Jbuilder 5 中文幫助》
http://www.pdown.net/download.asp?downid=2&;id=991
83.《JBuilder開發人員指南》
http://youth.dlmu.e.cn/book/list_down.php?bkid=224
84.《Win32的Internet函數說明》
檔案大小: 245248K
http://www.easysea.com/diannao/download/prog/windows/win32int.zip
85.《Visual InterDev 從入門到精通》
http://www.easysea.com/diannao/download/prog/interdev/crmd.wdl
86.《Visual InterDev 6.0 Web 參考手冊 》
http://www.easysea.com/diannao/download/prog/interdev/jsck.zip
87.《Visual InterDev 6.0 Guide 程序員》
http://www.easysea.com/diannao/download/prog/interdev/cxyz.zip
88.《javascript 程序開發手冊》
http://www.cty99.com/Templet/bookdownmore.asp?booktype=script#
89.《JAVA 大全》
http://www.easysea.com/diannao/download/prog/java/cxkf.zip
90.《Visual J++ 6.0 WFC 類庫參考手冊》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
91.《Java聯想(中文)》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
92.《Oracle 8 實用大全》
http://www.easysea.com/diannao/download/prog/oracle/sydq.zip
93.《Microsoft SQL Server 管理員手冊》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
94.《掌握ACCESS開發》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
95.《Oracle Performance Tuning and Optimization》
http://www.oradb.net/book/oracle_pt.zip
96.《Oracle ProC 程序設計》
http://www.oradb.net/book/oracleproc.zip
97.《Oracle8初學者指南》
http://www.easysea.com/diannao/download/prog/oracle/cxzz.zip
98.《RED HAT LINUX 6大全》
http://www.dingbing.com/book/redhatall.zip
99.《RED HAT LINUX 6管理工具》
http://www.dingbing.com/book/redhatman.zip
100.《VC++高級編程》
http://www.easysea.com/diannao/download/prog/c/vcgj.zip
⑦ VC++技術內幕源碼小說txt全集免費下載
VC++技術內幕源碼 txt全集小說附件已上傳到網路網盤,點擊免費下載:
⑧ C++演算法求精,看看誰的演算法最優
程序員》推薦C++ 圖書三人談
主持人:熊節(透明),《程序員》雜志編輯,C-View成員
嘉 賓:孟岩(夢魘),聯想公司掌上設備事業部應用開發處任職,C-View成員。與侯捷先生合譯《C++ Standard Library》一書
金尹(惡魔),上海天宇公司CTO,在《程序員》連載有「自由與繁榮的國度」系列文章
透明:「學C++用哪本書入門」,這是被問得最多的一個問題。但是哪一本書是最好的入門書?似乎很難找到答案。《C++ Primer》太厚,《Effective C++》對讀者要求比較高,《Essential C++》又常常被批評為「太淺」。
其實說穿了:no silver bullet。想從一本書學會C++,那是不可能的。有朋友問我如何學C++,我會建議他先去找本數據結構書,把裡面的習題全部用C++做一遍,然後再去看《Effective C++》。myan經常說「要在學習初期養成好習慣」,我對此頗不以為然。
個人認為,《Essential C++》適合作教材,《C++ Primer》適合作參考書,《Effective C++》適合作課外讀物。
惡魔:很後悔當初買了《C++ Primer》。因為從我個人角度來看,它的功能效用基本是和《The C++ Programming Language》重合。當然對於入門來說,它還是很不錯的。但是《C++ Primer》太厚,一來導致看書極其不方便,二來系統學習需要花比較長的時間。對於目前這個越來越快餐化的時代來說,的確有很多不適合的地方,不過可以作為初學者的參考書。現在我以一塊K3 CPU的代價把它借給了別人,希望我那位同事能夠從中得到一些益處。
如果已經具備了C基礎,我建議看國內的書,例如錢能的《 C++大學教程(第二版) 》。(如果沒有C的基礎還是看譚浩強的C語言)。這本書對C講得還算比較清晰,有很多習題值得一做,特別是最後的struct和union兩個部分。其中的一些演算法比較拖沓和繁瑣(比如樹和鏈表的遍歷演算法),讀者可以嘗試修改這些例子,作為最後對C語言的一些總結測試。
夢魘:這個問題讓我想起四五年前的情形。今天對於C++有一點認識的人,多半是從那幾年就開始學C++了。那時根本沒有品牌觀念。從書店裡找一本C++書,如果看著還算明白,就買下來。我記得那時候宛延闓、張國鋒、麥中凡教授的書都受到很高的贊譽。我個人最早的一本C++書是Greg Perry的一本書,今天想起來,其實是一本打著C++旗號的C語言教程。對我作用最大的一本書是國防科技出版社出版的一本書,書名記不得了,作者叫斯蒂芬·布萊哈。
透明:還記得以前曾批評過一本C++書,是北航出的,整本書就沒有出現過class關鍵字。那本書,說穿了其實只是介紹了C語言和iostream庫的用法,根本不能算C++。而當時我常常推薦的一本書是電子科技大學張松梅老師的C++教程。那本書,直到今天來看也沒有太大的問題,唯一的缺憾就是由於年代久遠,許多東西已經過時了。而對於一本技術書籍來說,「過時」是最不可接受的。
總體來說,那時使用C++的人真是在「盲人摸象」。不過這也有好處,就是對C++的很多細節能搞清楚,以後看到經典好書時比較容易理解;當然壞處就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什麼不一樣。
夢魘:整個90年代,其實大部分人對於C++的認識都似是而非。一開始是等同於Borland C++,後來是等同於Visual C++和MFC。所以一般來說,打著BC和VC旗號的書賣得很好,人們覺得這就是C++。而我比較幸運,布萊哈的那本書雖然從現在的眼光來看談不上高超,但基本路子是對的。可能是因為原書是給UNIX程序員的培訓教材,所以沒有讓我一開始就形成「C++ == VC++」的認識。
其實一直到1996年,我們那裡搞計算機的都是唯Borland C++馬首是瞻的,到了VC 4.0出來,一下子格局全變了。1997年VC5推出之後,書店裡MFC書鋪天蓋地,學MFC的人,頭抬得都比別人高一些。不過現在看來,那時候大部分的MFC書都是三流貨色。我曾經有一段時間認為,那一批程序員中間有不少被誤導了。根本原因就是相對的封閉。
透明:我覺得一本書的價值有兩方面:第一,教給你實用的技術;第二,促使你去思考。對於一本介紹VC(或者說MFC)使用方法的書,我根本不希望它能促使我有什麼思考,所以我就一定要求它在技術上精益求精完美無瑕。我剛開始用VC的時候,買的第一本書就是潘愛民老師翻譯的《VC技術內幕》(第四版),沒有受到那些「三流貨色」的誤導,應該說是很幸運的。
夢魘:1999年機械工業出版社開始出版「計算機科學叢書」,其中的《Thinking in C++》第一版受到了廣泛的歡迎。其實我一直不認為這本書很出色,雖然拿過一次大獎。然而我們都得承認,這本書在C++書籍領域里第一次建立了品牌觀念,很多初學者開始知道,不是隨便買哪一本都一樣的。再往後就是2000年的《 深入淺出MFC(第二版) 》第二版,以及侯先生在《程序員》上發表的那一篇《C++/OOP大系》,加上整個大環境的變化,品牌觀念深入人心,C++書籍市場終於開始逐漸與世界同步。
回想往事,我的感覺是,那個需要戰戰兢兢選擇入門書的時代已經過去,今天的C++初學者,大可以放心地買口碑好、自己讀起來思路順暢的書,入門不再是太大的問題。還有一些程序員已經學了幾年C++,但看到今天出版的一些新書,感覺比較陌生,這也不是什麼問題。侯先生經常說「凡走過必留下足跡」,所謂「走彎路」,未必不是一件好事。
至於具體的推薦表,就不好一概而論了。總之在我的印象里,《Essential C++》、《C++ Primer》、錢能教授的C++教程,都不錯。甚至有人一上來就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜歡,也沒什麼不可以。
透明:我同意你的觀點。不管怎麼說,編程是門實踐性非常強的學問。要想對C++對象模型有深入的了解,最好的辦法就是寫一串程序去看結果;要想學會OOP,也只能從項目中學。對於初學者,最好的學習方法就是不停地寫程序,寫真正有用的程序,寫到有問題的時候就去查書,於是自然就會知道哪本書好哪本書不好。不過我們的教育制度能不能讓大學里的學生們有這樣的學習機會,我表示懷疑。
以我的經驗,學C++有兩個門檻:入門和使用。完全看不懂C++,這是一個門檻,但是只要有一本合適的入門書,很快就能跨過。要想真正用上C++,卻不是件很容易的事情。尤其對於學生來說,接觸到的東西多是「玩具」,很難有實戰的機會。所以經常看見有人問「C++到底能做什麼」,這是C++學習中一個比較麻煩的問題。我們都是做了相當長時間的C++程序之後才看到一些真正經典的書,也正是因為走了相當長的彎路之後才知道這些書的經典之所在。所謂彎路,我想也是一種必須的積累。就算一開始就看《Essential C++》和《C++ Primer》,沒有兩三年的時間恐怕還是難有所得。
惡魔:有兩句十分有道理的話,一是我大學的C語言老師說的「寫程序不如說是抄程序」,另一句是一網友說的「好的設計來自借鑒,天才的設計來自剽竊」。對於我這個理性批判主義者來說,這兩句話的確不太適合。但是無論從哪個角度來講,對於初學者來說,剽竊大師的作品是通向成功的最快捷徑。
我個人認為,對於C++的初學者來說,首先要確定自己專業領域內主要使用的特性的方向。因為C++的特性如此眾多,初學者想貪多基本是不可能成功的。C++的編程範式基本可以分為ADT+PP、GP和OO三個方向。對於ADT+PP範式來說,初學者的主要問題不是學習C++,而是學習C的使用。對於這樣的初學者,國內的幾本書還是寫得比較清楚,符合中國人的習慣,比如譚浩強的《C語言教程》、錢能的《C++語言大學教程》。這兩本書我首推第一本,因為這一本我潛心研究了一年,這本書當中很多程序是可以剽竊的,而且可以對這些程序進行加工和提升。比如結構這一章中,它所給出的用struct來實現鏈表、二叉樹的演算法是相當蹩腳的。學習ADT+PP的初學者將這本書揣摩透以後可以嘗試修改這兩個程序。另外這本書的第二版稍微涉及了一些關於「類」的內容。學習ADT+PP的初學者,可以不被OO中的一些專有特性擾亂自己的思路,對於類層次扁平、無繼承、無多態的程序編寫是有很大好處的。
透明:你好象比較推崇國內教授寫的書。現在社會上有種不好的風氣:一捧就捧上天,一貶就貶下地。就好象對待譚教授的書,前幾年是奉為經典,這幾年又有很多人使勁批評。學C++更是有點「崇洋媚外」,總是覺得初學就應該看《Essential C++》。我看這種觀點也是片面的。
惡魔:當然《Essential C++》也值得看看。但是我個人覺得這本書沒有譚浩強的《C語言教程》來得好。主要原因是:第一,C++的所有特性都點到了,但是不深,看了以後會三心二意沒有方向;第二,可以抄襲借鑒的例子太少。《C語言教程》中有很多有趣的問題,比如猴子吃桃、漢諾塔等等,這些例子對於剛剛涉及C/C++語言編程的人來說是學習編程很好的例子。《Essential C++》只能是前兩本書看透以後,作為學習C++特性的一個過渡性的書籍。讓讀者真正領略到什麼是C++的編程、和C編程的不同點在哪裡。
透明:我發現一個很有趣的現象:初學者往往喜歡問「哪本書比較好」,這讓我很是不解。這有點像一個剛學打籃球的人問「王治郅和科比誰比較厲害」。當然科比更厲害一些。但如果你是想學打籃球,這兩個人都非常非常有資格教你,你跟誰學都能學得很強——關鍵不是在於你選哪個老師,而是在於你自己用多少功夫去學。
透明:回到原來話題。學會了C++的語法,能看懂C++代碼之後,必須有些書來指導進階(或者叫指點迷津)。我覺得《設計模式》很好,能夠讓讀者看到一些精妙的用法。不過正如我經常說的,模式帶來的麻煩和好處一樣多,甚至麻煩還要更多。而且,C++本身的問題使得在C++中使用GoF模式愈加麻煩。
夢魘:《Design Patterns》這本書絕對是不可以沒有的,而且中英文版都不可少。最初我看中文版,說實話看不懂,但是也不覺得人家翻譯得不好,所以就想,大概是原文就很難懂,加上自己水平有限。於是總是想著再找幾本patterns的書來看。後來找到幾本書,口碑還不錯,不過水平高下,一比就出來了,還是那本《Design Patterns》最經典,最耐看。英文版出來之後,兩個版本對照看,明白多了。現在覺得,其實就設計模式來講,把這本看明白了就很不錯了,不用再花費很多心思找其他的書。我現在的包里始終夾著這本書,隨身攜帶,有備無患。
至於說設計模式的副作用,和可能帶來的弊端,我的體會也挺多。不過是這樣,我們想一想,究竟什麼情況下設計模式可以用得很好呢?一種是有經驗豐富的人引導,比如要是Robert Martin帶隊,你在某個地方用錯了設計模式,他就會指出來,說這里不對,將來會產生什麼樣的弊端。對於他來說,豐富的實踐經驗足以支持他進行「預測型」設計。但是大部分人沒這個能力,因此我們只好走第二條路和第三條路,就是「試探型」設計和「重構型」設計。遇到一個問題,你覺得用某種模式挺合適的,就大膽地用了,成功是積累經驗,發現不好,出了問題了,只好改回來,那也是積累教訓。這叫做「試探型」。至於重構,應該算是最有組織、成功率最高的工程化方法。先把問題「quick and dirty」地解決了,所有的暗礁都暴露出來,然後再根據實際情況採用合適的模式優化設計。現在XP和UP都高度重視refactory,UP在Elaboration和Construction階段都鼓勵抽出專門的iterations進行重構。所以說如果組織快速的軟體開發,當然比較傾向於這條路——打成功率嘛。
透明:講到重構,我順便說說《Refactoring》這本書的影響。從工程本身的角度來說,你所謂的「重構型設計」是沒有什麼問題的。但中國的開發者(也包括我在內)往往比較沖動,比較容易相信銀彈的存在。曾經有那麼一段時間,我在Java中嘗試過了重構的方法之後,又拿到C++中去嘗試。結果發現,在Java中速度非常快的重構過程,到C++中就被減慢了。究其原因,就是因為C++和Java的約束條件不同。拿著Java中成功的案例直接套C++,不失敗才怪。
所以,我必須說:《Refactoring》這本書很有價值。但對於C++程序員來說,它的價值是讓你思考,思考這種方法的可行性。如果一個C++程序員沒有打算遷移到Java,那麼我必須告訴他:《Refactoring》這本書不是讓你照著它用的,甚至不是讓你去相信它的。對於C++程序員,《Refactoring》全書可以放心相信的只有第13章,其他的部分,都必須非常謹慎地對待。
夢魘:我還要就「試探型」的方法多說兩句,我覺得對於個人發展來講,「試探」也是必不可少的,撞牆不可怕,高水平的人不都是撞出來的嗎?你失敗了一次,就知道這個模式有什麼潛在的問題,下次再用,就會多看幾步,像下棋似的。撞的多了,路數就出來了。
我不知道你們是否有這個感覺:用錯了模式,吃了虧,再回過頭去翻翻《Design Patterns》,看到人家早就指出來這個問題,不過就是那麼幾句話,原來看上去乾巴巴的,現在覺得句句都講到心坎上,GoF的形象馬上就高大起來,還帶著光環,感覺是既興奮又懊悔。
透明:現在回頭來看,我更欣賞myan推薦給我的《Designing Object-Oriented C++ Applications Using Booch Method》。這本書能夠幫助C++程序員理清思路培養習慣,可惜國內沒有引進。相比後來商業味濃厚的UML系列書籍,我覺得這本書對於面向對象的闡釋精闢獨到,至今未有能出其右者。
夢魘:剛才我們兩人都說到Robert Martin,他可是我的榜樣。那本1995年的《Designing Object Oriented C++ Application》,我覺得是每一個C++軟體工程師都應該反復研讀的書。可惜不僅國內沒有引進,在國外的名氣也不大。如果你覺得面向對象的那些道理你好像都明白,可就是一遇到實際問題就使不上勁,那這本書就是你的最佳導師。
提到理清思路,還有一本書不得不提,就是Andrew Koenig的《Ruminations On C++》。每個人都應該問自己,我學了這么多年的C++,究竟什麼是C++最基本的設計理念?遇到問題我第一個直覺是什麼?第一個試探型的解決方案應該具有那些特點?如果你不能給出明確的答案,就應該認真地去讀這本書,讀完了你就有了「主心骨」。
透明:插一句話,談談「推薦書」的問題。入門書基本上是放之四海而皆準的,所以推薦的意義也不大。而入門後的發展方向,每個人不同,這個時候就需要「高人」的指點。舉個例子:我學C++的時候,myan還不認識我,所以也沒有給我推薦書,我還是學過來了,所以即使你當時向我推薦了《Essential C++》或者《C++ Primer》,我也不會太感謝你;但在我認真研究OO的時候,你推薦Robert Martin那本書給我,對我幫助就特別大,而且我從別的地方也很難找到類似的推薦,所以我就很感謝你。
一個程序員,必須有framework的意識,要學會用framework,還要主動去分析framework(在這方面,《Design Patterns》能有一定的幫助)。但是,真正高質量、成氣候的framework的書恐怕也就只有針對MFC的。從這個角度來說,MFC縱有千般不是,C++程序員都非常有必要先去用它、熟悉它、研究它,甚至藉助《深入淺出MFC》這樣的書來剖析它。不然,很難有framework的意識和感覺。
當然,另一個framework也很好,那就是STL。不管用不用MFC、STL,對這兩個東西的掌握和理解都是極有幫助的。最近我又在看《深入淺出MFC》,雖然已經不用MFC編程了,但幫助是一定有的。
夢魘:MFC和STL方面,我還是比較推崇侯先生的兩本書《深入淺出MFC》和《STL源碼解析》。
《深入淺出MFC》這本書,名氣自然是大得不得了,不過也有不少人批評。其實書也沒有十全十美的,批評當然是少不了的,不過有的時候我看到有人評論這本書,把它跟Inside VC相比,真的是牛頭不對馬嘴。
你剛才其實說得很對,程序員應該有一點framework意識。而這本《深入淺出MFC》與其說是在講MFC編程,不如說通篇是在拿MFC為例分析Application Framework的架構和脈絡。所以無論你對於MFC本身是什麼態度,這本書對每一個C++程序員都有很大的益處。
透明:是的。《VC技術內幕》會告訴你「DYNAMIC_CREATE這個宏怎麼用」,《深入淺出MFC》則告訴你「DYNAMIC_CREATE這個宏是怎麼實現的」。所以,如果你只需要在VC下寫一些小應用程序,《深入淺出MFC》的價值並不太大;但是,如果你需要設計一個稍微大一點的東西(不一定是framework),MFC的設計思想就會有所幫助。
夢魘:另外,我覺得對於MFC也應該有一個公允的評價。過去是吹捧得天上有地下無,書店裡鋪天蓋地都是MFC的書,搞得大家只知有MFC,不知有C++,甚至直到現在還有人問:「我是學MFC呢,還是學C++?VC++是不是比C++更高級的語言?」MFC成了一尊神像,阻礙了人們的視線。所以得把它從神壇上拉下來。這就是過去一兩年有很多人,包括我在內批評MFC的一個目的。可是現在大家視野開闊了,.NET也出來了,MFC不再是神像了,少數人就開始以貶損MFC為樂了。我覺得這種態度是不對的。
什麼叫好的框架?我覺得在十幾年的時間能夠象MFC這樣保持穩定並且不斷進步的框架就是好的框架。可能我們在一些具體的設計問題上有不同看法,覺得「這個地方這么設計不是更漂亮嗎?」很多時候是的,但是這不重要,重要的是MFC成熟穩定、有十幾年的成功經驗,這是最了不起的東西。
另外一點,MFC中間包括著學習Win32 API編程的最佳資料。這是除了其framework方面之外的另一個亮點。我現在使用Win32 API開發,但是經常參考MFC的源代碼,收獲很大。
透明:STL方面,我對於剖析它的源代碼興趣並不大,畢竟裡面源代碼多是演算法問題。所以,《STL源碼剖析》我也只是隨便翻翻就束之高閣了。我覺得這本書用來做計算機系的數據結構和演算法教材不錯,不知道有沒有老師樂意這樣做。
對於STL,我的態度一向都是「應用至上」。不過,我一直認為SGI STL本身就是一本精彩的書,一本數據結構和演算法的經典參考書,同時也是泛型技術的參考書。想知道一個演算法是如何實現的,看看STL源代碼就行;想知道如何使用type traits,STL源代碼裡面也有例子。看別人寫的書,總覺得隔著一層紗,有點撓不到癢處的感覺。SGI STL的代碼寫得非常漂亮,一個C++程序員如果不看看這本書,實在是可惜。
夢魘:至於STL,除了《STL源碼解析》之外,我舉賢不避親,強烈推薦侯先生與我合譯的那本《The C++ Standard Library》。這本書質量之高是無需懷疑的。我現在手邊常備此書,隨時查閱,對我幫助很大。
透明:C++和Java相比,最大的優勢就是它沒有一個專門的公司來管它,最大的弱點也是它沒有一個專門的公司來管它。Java程序員在學會簡單的語法之後,立刻進入SUN提供的framework,一邊用這個現成的framework做實際開發,一邊在開發過程中繼續學習Java一些幽深的特性。而這個時候,C++程序員恐怕還在問「VC和BCB哪個好」呢。這無疑是浪費時間。
夢魘:剛才你說Java和C++的優劣,這個話題已經成了我們這個年代永不消失的聲波了。我也不想再談這個。不過有一點我得說清楚:現在我們很多用C++的人吃了不少苦頭,探過脖子去看看Java,覺得它真是太可愛了,這種印象是不準確的。另外,Java也不簡單,而且會越來越龐大復雜。在很多場合,Java還不具有競爭力。至於將來如何,我看有些Java愛好者也過分樂觀了,似乎計算機科學界幾十年解決不了的問題都可以借著Java的東風解決掉,恐怕沒那麼容易。
透明:那當然。我再次強調:No Silver Bullet。讀書很重要,但古人說「行萬里路,讀萬卷書」,還是把「行路」放在「讀書」前面。尤其對於技術書籍,如果它不能幫我解決問題、不能給我帶來非常實際的利益,那麼我是不會去讀它的。惡魔說得對,我們這個社會很快餐,我們這個行業尤其很快餐,我們也只能努力適應它。
⑨ visual c++ 技術內幕6.0
我想說說我的經歷:
去年年初,我買了這本書的第四版,是針對VC6.0的,看了2個星期,進展很慢,那個時候我還比較菜。很多程序按書上的敲進去,編譯不過去,自己又不找到怎麼改,很痛苦,最後放棄了這本書。雖然是在新華書店買的,但質量很差。
網路上對這本書的評價很高。
後來我又買了VC。net技術內幕,就是第五版,針對。net2003,因為當時公司也用。net2003做為開發工具。但坦白的講,這本書是我一直想看而沒有看的,原因如下:
我的C++基礎不錯,看過C++primer,公司內部考c++基礎,我是部門第三。但MFC水平卻不高。對於MFC入門,最好就是找個視頻加書的教程。想必大家都想到了,就是孫鑫的VC++深入詳解.看了視頻,再看書,很適合MFC入門。而且不止是入門,也適合提高。這本書我在08年年底就看過一次,現在再看一次。本來是在看深入淺出MFC的,但自己做個小游戲時,遇到點麻煩,看了看孫鑫的書,發現自己的基礎還不好,於是再看一次。(呵呵,樓主不要以為在下很菜哦!)
好像有點跑題了:回到樓主的問題:
看這本書需要什麼基礎:
這個問題要話分兩頭:
1.有點C++基礎,會點VC知識就可以看,但效果肯定不會太好,掃掃盲還可以,想真真的做點事,那不行,VC只是工具,MFC只是一個軟體包。C++基礎,面向對象思想,類的各種概念才是重點。C++基礎不好,看這個書很吃力。而且很難搞懂各種各樣的繼承,多態等等。
2.建議讀了C++primer後再看這個書,當然,我身邊也有很多人C++基礎不怎麼樣,也一樣編程的,但從長遠角度看,如果真想在這行發展,C++primer一書不是難題,而是捷徑(雖然那個書很難,我覺得)。
另外,VC技術內幕,最新的應該是基於.net2003的,而不是6.0的,這點樓主要注意!
另外,希望樓主堅持下去,付出會有收獲的,感興趣就買了那書看,看不下去了,再回來補C++基礎,這樣也不錯。遇到問題,解決問題。
另外針對 time_edge 的觀點,我也提一句:
「<VC內幕>是研究相對較原理化的實現的東西.所謂的知其然必需知其所以然.
與<深入淺出MFC>有異曲同工的好處.」
-------- time_edge 對VC的評價,應該用到深入淺出MFC上。兩者曲不同,工亦不同。
⑩ VC++技術內幕的txt全集下載地址
VC++技術內幕 txt全集小說附件已上傳到網路網盤,點擊免費下載: