|
C++學(xué)習(xí)階段分析 今天終于看完了給自己列過(guò)的c++書(shū)單,有一種如釋重負(fù)的感覺(jué)。同時(shí)也讓我認(rèn)識(shí)到了c++的博大精深。以前用VC編程,寫(xiě)窗體程序以為自己對(duì)c++就很熟悉了,現(xiàn)在想想當(dāng)初的天真真是慚愧。下面我結(jié)合自己學(xué)習(xí)c++的過(guò)程,談?wù)剬?duì)c++語(yǔ)法學(xué)習(xí)的感悟。 一、 C++廣為人知的一半 面向?qū)ο笫荂++廣為人知的一半,但如何學(xué)好它,卻不是一件容易的事。 1、入門(mén)階段 抽象,繼承,多態(tài)是很多剛開(kāi)始學(xué)習(xí)c++的人對(duì)c++的認(rèn)識(shí)。對(duì)于抽象,繼承,比較容易了解。而多態(tài),則讓很多人認(rèn)為神秘莫測(cè)。我想每一個(gè)學(xué)習(xí)c++的人都會(huì)在開(kāi)始時(shí)對(duì)c++的多態(tài)有這么一種神秘感。 看看這個(gè)階段的書(shū)籍,找一本市面上講C++語(yǔ)法的書(shū)籍,同時(shí)附上C++創(chuàng)始人Bjarne Stroustrup執(zhí)筆的鴻篇巨制:《The C++ Programming Language》。之所以要從一本容易的C++語(yǔ)法書(shū)開(kāi)始,是為了保持我們的信心。有了一定的基礎(chǔ)后,不要一葉障目不見(jiàn)泰山,我們?cè)撊タ纯碈++創(chuàng)始人Bjarne Stroustrup執(zhí)筆的鴻篇巨制:《The C++ Programming Language》。這本書(shū)對(duì)C++的所有語(yǔ)法進(jìn)行了系統(tǒng)的介紹,高屋建瓴的介紹了C++語(yǔ)言,這也是為啥不一開(kāi)始就看這本書(shū)原因。牛人的書(shū)意境是很深的,要有一定的功底才可以看的懂。好了,看了這本書(shū)后,我相信你不會(huì)和我再犯同樣的錯(cuò)誤了:學(xué)了一本C++的語(yǔ)法書(shū),懂了抽象、繼承,多態(tài)還蒙著半層面紗就敢說(shuō)自己熟悉C++了。因?yàn)槟阒纁++除了抽象,繼承,多態(tài)這些面向?qū)ο蟮男再|(zhì)之外,還有就是和面向?qū)ο笙鄬?duì)的泛型編程:C++模板編程。好了,我們暫且不要好高騖遠(yuǎn),先把這些基本的搞定再說(shuō)。 2、熟悉階段 我們?nèi)腴T(mén)了。如果你想有所作為,那你就不要停下腳步。古語(yǔ)日:“書(shū)讀百遍,其義自現(xiàn)”。但在程序設(shè)計(jì)的世界里,書(shū)是要讀的,但僅僅讀書(shū)是不行的。我們還需要實(shí)踐,對(duì),寫(xiě)程序。有了對(duì)抽象,繼承,多態(tài)的認(rèn)識(shí),我們就可以用面向?qū)ο蟮乃枷脒M(jìn)行編程了。當(dāng)然了,面向?qū)ο蟮乃枷氩皇侨菀渍莆盏?,我們要在?xiě)程序的過(guò)程中不斷的體會(huì),琢磨。當(dāng)你寫(xiě)程序到一定的數(shù)量的時(shí)候,你會(huì)發(fā)現(xiàn)自己犯過(guò)很多錯(cuò),有一種將這種錯(cuò)誤分門(mén)別類的想法。恭喜你,你升級(jí)了。 3、提升階段 不煩你將自己犯過(guò)的錯(cuò)誤分門(mén)別類了。因?yàn)榍叭艘呀?jīng)進(jìn)行了總結(jié)。這時(shí)你就奇怪了,既然有前人總結(jié)的經(jīng)驗(yàn),你為啥不在我犯錯(cuò)之前告訴我呢。很抱歉,不是我不愿意,因?yàn)樵谀惴稿e(cuò)之前如果我禁止你這樣,禁止你那樣,你會(huì)覺(jué)得自己無(wú)所適從,不知道該如何去寫(xiě)程序了。同時(shí)你也不會(huì)明白為啥不能那樣做。好了,有了犯錯(cuò)的經(jīng)驗(yàn),我們可以去看前人總結(jié)的犯錯(cuò)寶典了。第一本書(shū): 《effective c++》,前人總結(jié)的50條c++編程法則,沒(méi)編過(guò)程序的人不要去看。第二本書(shū):《c++編程思想:第一卷》從思想上指導(dǎo)我們進(jìn)行c++編程,為我們后期的學(xué)習(xí)做準(zhǔn)備。 4、揭開(kāi)C++多態(tài)的神秘面紗 總結(jié)了錯(cuò)誤的法則,有了編程思想的指導(dǎo),你是不是想試試你的功底了。是的,我們?cè)摍z驗(yàn)我們的思想是否到家了。如何辦:做項(xiàng)目。好的,那就做吧。當(dāng)你做項(xiàng)目的時(shí)候,你學(xué)會(huì)了用虛函數(shù),學(xué)會(huì)了C++的多態(tài),但是你想了解這多態(tài)到底是如何實(shí)現(xiàn)的,它神秘的面紗后面到底是啥。這個(gè)時(shí)候,它可以滿足你的要求:《深度探索c++對(duì)象模型》,它從編譯器的角度,講敘了C++多態(tài)的底層機(jī)制。當(dāng)然它還包含其它精彩的內(nèi)容,是不是等不及了,那就去讀它吧。 二、C++被人忽視的一半 也許揭開(kāi)c++的神秘面紗之后,你會(huì)認(rèn)為自己已經(jīng)了解了C++的所有語(yǔ)法了。我想在入門(mén)階段讀過(guò)《The C++ Programming Language》的人,他們很清楚自己現(xiàn)在還只是站在C++圣殿的半山腰上,前面還有更高的意境等待著我們的思考。革命尚未成功,同志仍需努力。 1、泛型編程入門(mén): 也許你會(huì)說(shuō),泛型編程離我太遠(yuǎn),我沒(méi)用到。呵呵,這就是你不知情了吧。要知道,C++中我們使用的很多庫(kù),都是由泛型編程來(lái)實(shí)現(xiàn)的。我們編程用到的IOSTREAM,就是一例。當(dāng)然了,最有名的要數(shù)我們的STL標(biāo)準(zhǔn)模板庫(kù)了,你要知道C++98標(biāo)準(zhǔn)可是因?yàn)樗七t了幾年才出臺(tái)的,要不可能就叫C++94標(biāo)準(zhǔn)了。從這里可以看出C++泛型編程的重要性了吧。好了,下面開(kāi)始好書(shū)推薦:《c++ templates》,絕對(duì)是將C++泛型編程的語(yǔ)法講的最清楚的一本書(shū),不過(guò)不適合初學(xué)者,但到現(xiàn)在我也沒(méi)有找到一本更合適的入門(mén)書(shū)籍,那就從它開(kāi)始吧。 2、泛型編程進(jìn)階: 開(kāi)始了,我們要走出泛型編程的第一步。是不是我們?cè)搫?dòng)手開(kāi)始寫(xiě)泛型程序了,且慢,不要著急,我們先看看前輩們的作品。用一下STL標(biāo)準(zhǔn)模板庫(kù),沒(méi)用過(guò)別告訴我你用C++寫(xiě)過(guò)項(xiàng)目。先推薦幾本好書(shū):《c++標(biāo)準(zhǔn)程序庫(kù)》,模板編程的最成功作品。去看看這本書(shū)吧,里面有很多實(shí)例,可以邊看邊寫(xiě)程序?!禨GI STL源碼剖析》,向?qū)<胰〗?jīng),學(xué)習(xí)內(nèi)存管理,算法,數(shù)據(jù)結(jié)構(gòu)泛型編程的技法。 3、泛型編程提高: 有了前面的基礎(chǔ),我們?cè)趤?lái)看看泛型編程的進(jìn)一步發(fā)展?!斗盒退枷搿?,一探泛型編程的宏觀和微觀?!抖嘈团c虛擬》,泛型和面向?qū)ο蟮耐昝澜Y(jié)合。 三、C++的統(tǒng)一 好了,經(jīng)過(guò)上面的兩個(gè)階段,我們基本學(xué)完了c++的語(yǔ)法。下面我們來(lái)看看,通過(guò)c++可以實(shí)現(xiàn)啥。 com一個(gè)更好的c++。 你想進(jìn)一步提升自己的實(shí)力嗎,你想成為c++的精通者嗎。那就學(xué)com吧。也學(xué)你認(rèn)為com過(guò)時(shí)了,沒(méi)用了。告訴你,那是浮躁的人說(shuō)的話。有一句話講的經(jīng)典,流行不是用來(lái)追的,而是用來(lái)等的。還告訴你,windows系列操作系統(tǒng),com無(wú)所不在。微軟的技術(shù)具有傳承型,由VC到.net,他們之間有聯(lián)系,當(dāng)然更有進(jìn)步。由com,dcom到com+,他們是一脈相承的。VC中就不說(shuō)了。.net框架中其邏輯層就包含有.net中的企業(yè)服務(wù)(com+)。好了,下面我們看看com的學(xué)習(xí)過(guò)程把。 1、Com入門(mén): Com是一種思想,不是一種編程語(yǔ)言,在這里談?wù)撍且驗(yàn)槲覀円肅++將這種思想實(shí)現(xiàn)。在實(shí)現(xiàn)的過(guò)程中,我們可以從二進(jìn)制級(jí)別來(lái)研究C++對(duì)象在內(nèi)存中的布局。好書(shū)推薦: 看過(guò)《深度探索c++對(duì)象模型》的同志,恭喜你,可以直接看有關(guān)C++進(jìn)行com編程的書(shū)籍了。否則,回去看過(guò)《深度探索c++對(duì)象模型》再來(lái)。《Inside com》,一本講敘com基本原理的書(shū),配有豐富的實(shí)例,很不錯(cuò)?!禘ssential COM》以C++為引子,從本質(zhì)上解析com的實(shí)現(xiàn),迄今為止,將com解析的最透徹的一本書(shū)。 2、實(shí)戰(zhàn)com: 《深入解析ATL》,將C++泛型編程和面向?qū)ο缶幊探Y(jié)合的典范,簡(jiǎn)化了我們用C++開(kāi)發(fā)COM的流程。 經(jīng)過(guò)三個(gè)階段的學(xué)習(xí),我們對(duì)C++有了充分的了解。下面我們就享受它給我們帶來(lái)的樂(lè)趣。COME ON , ENJOY IT. 附書(shū)單: 《The C++ Programming Language》 《c++編程思想:第一卷》 《c++編程思想:第二卷》 《c++標(biāo)準(zhǔn)程序庫(kù)》 《effective c++》 《more effective c++》 《STL源碼剖析》 《c++ templates》 《泛型思想》 《多型與虛擬》 《Inside com》 《Essential COM》 《深度探索c++對(duì)象模型》 《深入解析ATL》 《深入淺出MFC》 |
|
|
來(lái)自: 埃德溫會(huì)館 > 《vc》