性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

轉(zhuǎn)貼,(學(xué)C++,體會)

首先聲明,我可不是什么高手,也就是剛脫貧.因為運氣很好,買到了幾本好書,在學(xué)習(xí)過程中幾乎沒走什么彎路,沒費什么勁就入門了,現(xiàn)在一般的小程序能搞定了.看到那些因為不知從何下手而苦苦掙扎的朋友,希望我的文章能給他們一些幫助.
   學(xué)編程急不得,上來就學(xué)VC肯定碰一頭灰,說VC難就難在這點上了.如果硬上,意志堅強的話也許能挺過來,但也是會缺乏后勁,不得不回過頭來補習(xí)基礎(chǔ)知識.意志不堅強的話,很有可能就此放棄了,并留下一個VC難得不得了的印象.其實,只要踏踏實實一步一步來,VC也就是很簡單點事.在這里我說一下,如果你還只是一個初中生,那么你就應(yīng)當(dāng)仔細(xì)考慮一下了.首先,限于你的知識和思維能力,學(xué)學(xué)C語言還應(yīng)該沒問題,但要學(xué)VC是要下相當(dāng)大的功夫的.而且,你現(xiàn)在學(xué)到的東西將來一定會過時,所以不如把精力放在算法的研究上,畢竟這些東西永遠(yuǎn)都不會過時.
  
   我覺著如果走對路子,入門VC,一個暑假應(yīng)該夠用了.

   雖說學(xué)VC并不是傳說的那么難,可不下些苦功夫是學(xué)不成的.在學(xué)VC前,你必須確定,你是因為熱愛編程才學(xué)VC的,而不是出于炫耀或其他.否則,恐怕你堅持不到勝利的那一天.    

  
   等你對編程有一定的認(rèn)識后,就應(yīng)該開始進(jìn)軍C++了.注意,是C++而不是VC,這兩者根本不是一碼事!別買VC入門,你肯定看不懂!C++是一門語言,而VC教程則是講解如何使用MFC類庫,學(xué)習(xí)VC應(yīng)建立在充分了解C++的基礎(chǔ)上.

   我覺著比起許多花花綠綠的大全、寶典,不如買本大學(xué)的C++教程(注意:別買等級考試的教程,那是應(yīng)試用的),那些教程大都經(jīng)過反復(fù)錘煉,比較系統(tǒng),很有含金量,有不會太貴.這里我暴力推薦由清華大學(xué)出版社出版的一本《C++程序設(shè)計教程》,封面是紅色的,封底是黃色的,看起來很樸素,主編是錢能.這本書簡直是好的沒法說,還便宜(39.5元).這本書不但告訴你語法,還告訴你為什么要這樣規(guī)定語法,看完之后,你會覺著那許許多多的規(guī)定是理所當(dāng)然的,根本不用費心記,不但不枯燥,反而會使有一種美感.書中還有許多實際編程時應(yīng)注意的問題,很有價值.這本書還配有《實驗指導(dǎo)》,和《習(xí)題集》,不過對于有一定編程經(jīng)驗的人應(yīng)該是用處不大,所以我沒買.除了這本書,我建議再買本關(guān)于傳統(tǒng)C語言的書,要著重以下幾個方面:編譯預(yù)處理、typedef的使用,位運算,標(biāo)準(zhǔn)庫函數(shù)的使用(最好有一個比較詳細(xì)的列表,用的時候好查).

   C++的標(biāo)準(zhǔn)類模板是個不錯的東東,不過對于學(xué)習(xí)MFC卻沒有幫助,原因是MFC太落后了(^_^),可以先放一放,要不要學(xué)等搞定MFC時再作決定.雖然我沒怎么學(xué)過,不過覺著它挺不錯,而且代表了一種發(fā)展方向.雖然學(xué)著費勁(那東西幾乎沒一點C++的樣子,簡直是在學(xué)新語言),但掌握它可使編程輕松不少.

   學(xué)完了C++,該學(xué)VC了吧?別急,先找本W(wǎng)IN32編程的書,這次沒什么講究,看著差不多的,便宜一些的就行了,如果有對于VC集成環(huán)境的介紹就最好了.WIN32編程是指用WINDOWS API編程,MFC是將眾多的API函數(shù)進(jìn)行了封裝的類庫,用起來方便了不少,但如果沒有一些API編程基礎(chǔ),對相關(guān)概念不了解,學(xué)起MFC來可能會很費解.相信我,將來你不會覺著學(xué)API編程是浪費時間的.API函數(shù)有兩千多,要都學(xué)會累死.其實你只要知道如何創(chuàng)建窗口、對話框、控件、消息循環(huán),了解了句柄的含義就差不多了,最好再了解一點GDI編程.這個階段的關(guān)鍵是要理解WIN32程序是如何運作的,把握各種窗口間的關(guān)系.因為你以后應(yīng)該很少直接用WIN32 SDK編寫程序,所以關(guān)鍵是理解整體結(jié)構(gòu),記住幾個函數(shù)并沒有什么意義.函數(shù)用的時候可以現(xiàn)查.手頭應(yīng)有一份比較全面的資料.中文的API函數(shù)大全好像只有For VB的,不過看起來應(yīng)該是沒有任何障礙.英文的資料MSDN中就有,相當(dāng)全面,也比中文的詳細(xì)一些.我建議用中文資料快速查找,有問題再看英文.(我忘了我的html版中文API大全是從哪下載的了,不過書店有售,白皮的,很厚一本,很貴就是了.誰想要可以與我聯(lián)系iamsor@sohu.com)

   對于想學(xué)游戲編程的朋友注意:從現(xiàn)在起,你不必去學(xué)什么MFC了,相信我,那東西除了讓你頭疼一點用處都沒有.游戲都使用Win32 SDK編出來的.現(xiàn)在,你要學(xué)的是DirectX.我推薦老王翻譯的DirectDraw文檔(www.imagic3d.com),前面有一些老王自己寫的基礎(chǔ)知識,很適合入門, 在此特別感謝老王的辛勤勞動.我還買了一本《DirectX 7 速成教程》,機械工業(yè)出版社出版,封面封底都是紅色.除了翻譯慘了點還算不錯,介紹的挺全面,還有一些游戲編程基礎(chǔ)知識.如果你想圖省事,可以考慮用云風(fēng)編寫的風(fēng)魂游戲庫,很方便的(www.codingnow.com 對云風(fēng)的辛勤勞動表示感謝).不過我仍然建議至少了解一下DirectX.這里說一下,很多朋友抱怨找不到有關(guān)DirectX的書籍,我告訴你,別去編程書籍里找,去多媒體制作書籍那找,還要把眼睛瞪得大大的、圓圓的.Director.. Director.. DirectX!!!知道了吧,書店工作的人眼神都不大好,我也是有一天沒事瞎轉(zhuǎn)才發(fā)現(xiàn)的,嚇了我一大跳.發(fā)現(xiàn)這個秘密后我發(fā)現(xiàn)其實有不少關(guān)于DirectX的書,只是一般人找不到罷了.學(xué)會了DirectX,就可以開始奮斗了,剩下的問題就只有積累經(jīng)驗了.

   對于志向是應(yīng)用軟件的朋友,打好了基礎(chǔ),現(xiàn)在進(jìn)軍VC的障礙都已掃清了.不過還是應(yīng)做好充分的思想準(zhǔn)備,事情不會那么順利的.剛開始,你就要面對一個瓶頸,大量的緊密關(guān)聯(lián)的知識,使你必須一下理解一個整體,而很難一點點來.可以說,學(xué)VC最難的就是剛開始.情況有些類似于你第一次創(chuàng)建窗口時面對的那長長的程序,只不過更糟糕就是了.很多人就是在此被一大團(tuán)知識噎著,放棄了學(xué)習(xí).事實上,這幾乎是Windows編程的一大特點,在WIN32編程時你就應(yīng)當(dāng)有所體會,而DirectX和COM都有類似問題.記住,一定要堅信:突破了這個瓶頸之后便是一片海闊天空,而有著扎實基礎(chǔ)的你是一定能闖過去的.
   我的建議是,不要等徹底弄明白一句才看下一句,而是知道好像怎么回事就向下看,實在看不懂也硬著頭皮往下看,等能比貓畫虎的作出個菜單、對話框時便回過頭再看一遍,幾遍之后應(yīng)該就可以大概明白MFC程序的運作了.注意:這里有個關(guān)鍵,一定要用心體會面向?qū)ο缶幊痰木?努力將眼前的程序與你之前所學(xué)的知識聯(lián)系起來.通過比較成員函數(shù)和對應(yīng)的API函數(shù)間的區(qū)別,嘗試去理解MFC是怎樣封裝相關(guān)的API的.例如,相當(dāng)多的類將句柄封裝了起來,在傳遞參數(shù)時加以省略,這就是一個很重要的特性.MFC中有許多的宏,看起來很奇怪,但你不必理會其實現(xiàn)方法,只要知道如何使用便可,這點也很重要.還有,千萬不要過于依賴ClassWizard,對于其生成的代碼要自己進(jìn)行分析,偷懶就不能真正理解MFC.

   這里我介紹一種學(xué)法,不過學(xué)法這種東西因人而異,所以還要根據(jù)個人的情況決定.開始時,教程讓怎么辦就怎么辦,比貓畫虎的作出個菜單、對話框,然后試著添加控件.等能不看教程便做到這些時,開始逐字逐句的試著理解MFC程序的組織.若看不懂就跳過看下面的.就這樣一遍一遍來.如果覺著頭大就先歇上兩天,等清醒了再接著來.最好在這期間多找些介紹MFC框架的文章.注意:先不要碰有關(guān)文檔/視結(jié)構(gòu)的東西,否則你會更頭大.然后便可試著寫個定時器、名片夾之類的小東西,熟悉一下各種控件的使用.

   突破了開始的瓶頸之后再學(xué)下去便會越學(xué)越容易,因為你可以一點一點的積累知識,而不用擔(dān)心被噎著了.再過不久,你就不得不開始使用API函數(shù)完成一些功能,如在系統(tǒng)托盤加圖標(biāo),自畫列表框等.這時,你也會體會到學(xué)習(xí)WIN32編程的好處了,沒學(xué)過的人很可能就此卡殼.

   關(guān)于VC的教程遍地都是,但魚龍混雜,市場烏煙瘴氣,騙錢的書真不少.有些書很厚,內(nèi)容當(dāng)然也很全,對老鳥很不錯,但對于初學(xué)者似乎有些浪費錢,因為里面絕大部分的東西MSDN中都有,并且初學(xué)者用不著.老外寫的書一般內(nèi)容不錯,但翻譯水平是個問題.如果翻譯糟糕可夠你受的,加上價格不菲,我也不建議初學(xué)者買.還有些什么傻瓜書、圖解之類,好像是面向初學(xué)者,時則為騙錢,你看完后除了那幾個例子什么也不會作.如果你看到有一本書花了大量的篇幅圖文并茂,生動形象的介紹如何畫圖,輸出文字,別買!騙錢的!(:-< 我就被坑去42塊現(xiàn)大洋)那些花哨的東西對初學(xué)者除了轉(zhuǎn)移注意力沒任何好處.如果你真的對GDI繪圖很感興趣,就去找些專門書籍,比那些書好多了.最好買名字類似于VC應(yīng)用,VC編程之類比較正式的,圖不要太多的,字不要太大的,最好是有較多的控件介紹的.當(dāng)然,文字流暢也是很重要的.書不要買太多,最多兩本,因為這些書內(nèi)容都差不多,買多了的話東看西看反倒沒好處.在這里,我建議初學(xué)者先別急著掏錢,而是去VC王朝( http://vcdynasty.yeah.net/)下載本MFC教程.雖說是網(wǎng)上教程,卻當(dāng)相當(dāng)有水準(zhǔn).不但內(nèi)容比較全面,還一句廢話也沒有(這里感謝作者的辛勤勞動).只是可惜對GDI沒有一點介紹,還須其他書籍作補充.等搞定這本教程時,應(yīng)該就已經(jīng)入了門,可以有針對性的選購書籍,不用擔(dān)心上當(dāng)受騙了.還有,VC知識庫(www.vckbase.com)的網(wǎng)上雜志也很不錯,對剛?cè)腴T的人很有幫助,建議下載.入了些門后,各個網(wǎng)站多轉(zhuǎn)轉(zhuǎn),看見好文章就往下拉,對提高水平很有好處.

   一套MSDN光盤在這時是必不可少的,什么都找中文資料是不可能的,即使能找到也會很費時間和金錢,只能看硬著頭皮英文.不過以我的經(jīng)驗看,只要有高中水平的英語,加上金山詞霸一路滑過去,看那種專業(yè)文章還是很容易的.還有,初學(xué)者一上來可能根本不知道上哪找需要的東西,我在這里把常用的地方列一下:

WIN32 API:    平臺SDK->Reference->Win32 Functions in Alpha Order
MFC類庫資料:    Visual C++ Documentation->Reference->Microsoft Fo...
C/C++語言及標(biāo)準(zhǔn)庫資料:    Visual C++ Documentation->Reference->C/C++...
標(biāo)準(zhǔn)控件:    標(biāo)準(zhǔn)控件都被MFC封裝了,可以參考對應(yīng)的類,如Edit控件對應(yīng)CEdit類.
VC中帶的ActiveX控件:    Visual Basic文檔->參考->控件參考(唯一的中文資料,卻是最糟糕的.不但是For VB,與C++有很大區(qū)別,還翻譯得亂七八糟,幾乎沒法用.如有高手知道哪有英文資料還請告知,不勝感激)

   目前市面上的MSDN光盤已經(jīng)有一段歷史了,有些東西可能有些過時.要最新資料的話,可以到微軟的網(wǎng)站(當(dāng)然是全英文的).不過對于初學(xué)者似乎沒有必要.

   搞定VC后,要學(xué)什么都隨你便了,再學(xué)C++Builder,VB,Dephi,java什么的都是一點難度都沒有了,感覺就象是把關(guān)鍵字換了換.或者可以去啃啃COM,據(jù)說那是塊硬骨頭(不過好像也只是入門難,因為有了之前的經(jīng)驗,雖然我沒碰過,但花點時間應(yīng)該是搞得定的.另外DirectX編程經(jīng)驗在此應(yīng)該是有些幫助的).
  
   最后,我建議有時間的話多研究一下各種算法.數(shù)據(jù)結(jié)構(gòu)是一定要看的.不一定要記住(話說回來,不經(jīng)常用的話也記不住),但至少要知道有那么回事,萬一碰到問題了要知道往那邊靠.其實,常見的鏈表等結(jié)構(gòu)以及排序等算法在C++標(biāo)準(zhǔn)類模板中已經(jīng)實現(xiàn)了,不用你去費勁,但有些了解的總是有好處的.至于離散數(shù)學(xué)、線性代數(shù)什么的,對于復(fù)雜些的算法是必需的,其中離散數(shù)學(xué)是數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ).不過,我倒覺著只要不是太復(fù)雜的問題只用經(jīng)驗也能解決(就象奧賽書中那樣,只是實現(xiàn)而沒有證明),而且那些東西不用就會忘.萬一碰見個難題解決不了,找個高手幫忙也不錯,省時省力^_^.
  
   下面是我想到的一些雜七雜八的問題,沒什么條理,湊或看吧:
  
   英語水平不用很高,但至少要有高中水準(zhǔn),否則有你受的.
  
   看書一遍看不懂沒關(guān)系,事實上,要一遍就能弄懂你就很有天分了.只要多看幾遍,綜合分析,應(yīng)該是沒有什么問題的.

   現(xiàn)在的世道,不是書到用時方恨少,而是書到用時方能學(xué).不要試圖滿把抓,而要用到什么學(xué)什么.這樣,學(xué)的又快,記的又牢.

   一個錯誤認(rèn)識-學(xué)編程靠的是記憶:這是很要命的思想,會讓你累死而無所得.事實上,你幾乎不用特意記任何東西.對于各種函數(shù)、語句,只要知道有那么個東西,用的時候知道上哪找就行了,用多了自然就記住了.學(xué)編程關(guān)鍵在理解編程思想.

   一個小技巧:活用編譯器可以幫你很多忙.在VC中,當(dāng)你輸入成員符號.或->時,程序會自動列出此類的成員,你只要選一個就行了.這樣便省了很多記憶負(fù)擔(dān).例如,你想獲得一個CString類對象的長度,對應(yīng)方法肯定是Get什么,但是GetLetterNum還是GetStrLength卻不知道,你可以輸入xxx.Get,這樣,你便可從列表中找到一個GetTextLength(),不是這個還能是什么,單擊它的話還可能出現(xiàn)說明.還可避免打錯字.如果想調(diào)用本類的成員函數(shù),就輸入this->,就可以查看成員列表了.對于全局函數(shù),則是輸入::即可.這樣的話看起來還清楚.還有,如果沒有出現(xiàn)那個列表,八成是你弄錯了什么東西,例如變量沒定義,或打錯了字,但也可能是VC的BUG,很少就是了.對于初學(xué)者,這可是很好用的功能.
  
   初學(xué)編程應(yīng)遵循的一條原則:比貓畫虎、不求甚解.關(guān)鍵在于很多東西你就甚解不了,例如MFC中稀奇古怪的宏.而且,甚解了也沒太大的好處,暫時還是不要管它,會用就行了,什么時候有了閑工夫再來慢慢琢磨.多留心別人的程序是如何實現(xiàn)的,并照著去做.有時,一些小問題也體現(xiàn)著高深的思想.比如,一個變量要定義在什么地方,如何組織類的結(jié)構(gòu).如果不太明白,就先找著別人的樣子去作,時間一長就會自然而然的明白,這就像下棋一樣,老頭怎么下,你也跟著怎么下,畢竟他出錯的可能比你小.

   還有,我覺著初學(xué)者不應(yīng)把過多的精力放在象Cool的工具條,透明的、氣泡狀的窗口之類的工作上.再搞這些之前,你最好問問自己,自己的程序配得上這些漂亮的界面嗎?尤其是,千萬不要在剛開始動手時就先打扮界面,以免界面也弄好了,熱情也沒了.畢竟,看在眼里的成果給人的刺激比枯燥的算法強得多.如果你想搞的話,也要等程序主體定型后再搞.

   初學(xué)時還應(yīng)多留心關(guān)于程序結(jié)構(gòu)組織的文章,這些東西是很重要的.要從一開始便養(yǎng)成良好的風(fēng)格.否則有一天當(dāng)你決定編一個大點的程序時,你就會發(fā)現(xiàn)干到一半就干不下去了.

   編程不是技術(shù)活,而是體力活:學(xué)的時候滿腦子全是技術(shù),可用的時候就真成了體力活了.真正做起東西來,最重要的是要有毅力堅持到完.意志不堅強就難免半途而廢.

   關(guān)于初學(xué)者是該學(xué)VC還是該學(xué)VB的問題:我覺著,學(xué)VC會難一些沒錯,但掌握學(xué)習(xí)方法的話也沒想象的那么難,而且學(xué)VC才能深刻領(lǐng)會面向?qū)ο缶幊痰木?它使你的思想提升了一個高度,對以后的發(fā)展是大有好處的.再說,如果這點困難都克服不了,以后也很難有什么作為.所以,即使你打定主意用VB,也還是花些時間看看VC,至少知道它的大概結(jié)構(gòu).從長遠(yuǎn)看,這是很有好處的.
  
   關(guān)于學(xué)C++ Builder還是Visual C++的問題:也許VC真的不太好,但總不會太糟.可關(guān)于VC的資料不知是關(guān)于C++ Builder的多少倍.尤其對于初學(xué)者,這時很要命的!何況兩者相差其實并不太多,學(xué)會了一種,再學(xué)另一種也不會太費事.

   呵,沒想到說了這么多.我已經(jīng)聲明了,其實我也就是剛?cè)腴T,以上一切都是我自己的感受,難免有錯誤,還請高手指正.另外,這是我第一次寫文章,加上我語文很糟糕,其實就是想到哪寫到哪,各位就湊或一下吧.
全部回復(fù)(5)
正序查看
倒序查看
2004-06-27 20:32
我不喜歡C++,我喜歡WIN32 API.不過,不是整天搞這個的,提高真難啊!學(xué)了后面忘了前面.
0
回復(fù)
2004-06-28 10:21
@乞力馬扎羅的雪
我不喜歡C++,我喜歡WIN32API.不過,不是整天搞這個的,提高真難啊!學(xué)了后面忘了前面.
有同感,我現(xiàn)也在學(xué)WIN32!!!
我發(fā)的那個WIN32壓縮文件你看過嗎???
0
回復(fù)
2004-06-28 21:47
@一個好人
有同感,我現(xiàn)也在學(xué)WIN32!!!我發(fā)的那個WIN32壓縮文件你看過嗎???
沒看呢.現(xiàn)在沒時間搞程序了:(
0
回復(fù)
2004-06-29 09:30
@乞力馬扎羅的雪
沒看呢.現(xiàn)在沒時間搞程序了:(
我也是,只是晚上回家搞一搞,現(xiàn)POWER,搞得煩啊,RCC,要搞到空載,接近0W,現(xiàn)只調(diào)到0.3W,我看,還要努力,都調(diào)了一個星期啊!!
0
回復(fù)
wlx_wh
LV.2
6
2004-11-10 12:45
你好:我正在看《windows程序設(shè)計第5版》,好象win32 api只是一個函授庫,它可以用vc、vb來調(diào)用吧?我是做單片機的,對dos下c編程知道一點,對windows下變成沒入門,很菜的問題,見笑
0
回復(fù)
發(fā)