亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

學習C和C++的9點經驗總結

2020-05-23 14:11:23
字體:
來源:轉載
供稿:網友
本文給大家總結了一下我們在學習C和C++的時候的一些經驗和需要注意的事項,希望能給大家一些幫助,少走些彎路
 

總是被問到,如何學習C和C++才不茫然,才不是亂學,想了一下,這里給出一個總的回復。

  一家之言,歡迎拍磚哈。

  1、可以考慮先學習C.

  大多數時候,我們學習語言的目的,不是為了成為一個語言專家,而是希望成為一個解決問題的專家。做一個有用的程序員,做一個賺錢的程序員。我們的價值,將體現在客戶價值上,而不是語言寫得好不好看。

  C++是C的一個面向對象的解釋,C++為C擴充了大規模工程應用,復雜的系統結構的組織和掌控方法,但是,我認為,C++骨子里還是C的。

  畢竟,解決具體問題,每個函數內部,都是用C的方式寫程序,還是面向過程的。

  因此,想要學習好C++,我的建議,先學習C,先學解決問題的能力,再討論解決大問題的能力。就是先學習怎么走路,再學習怎么跑步。

  2、學習C的過程中,一定要理解結構化編程思維。

  為什么呢,我前面有文章說過,軟件語言的發展過程,就是一個數據私有化的過程,大型工程應用,強調高內聚,低耦合,模塊化設計,保持代碼最大的靈活性和安全性。

  這是現代工程化開發的核心和靈魂。

  因此,利用C這門語言入門,借此理解結構化開發思維,可以說是個很方便的路子。因為C的函數,本來就是為重用做準備的。同時,全局變量和cpp內部私有變量的差別,其使用原則,這些都能學到很多結構化開發思維。

  3、開始學習C++

  C++不難學的,很多人覺得C++難學,其實是因為它在C之外,又提供了很多的概念,尤其是對象,很難以理解。

  不過我經過這么多年,把這個問題反而看淡了,我認為面向對象相對面向過程,僅僅是結構化程序設計的一個具體體現,是編譯器提供手段,強迫程序員必須遵循數據私有化的一個實例,C++和C的關系,最核心的莫過于此。

  現在我們回到C再看看,如果我們把一個全局變量,寫到一個cpp里面,并且在對應的h文件中不聲明,它是不是就只有這個模塊可以使用?它是不是就是私有變量,以這個理解,類能明白了嗎?

  4、學習C++的深入技巧

  C++在類的基礎上,經過這么多年的發展,其實提供了很多深入的概念,看起來很復雜,其實我看也很簡單。比如模板,我的理解就是“類的類”,大家說是不是?

  既然模板理解了,STL,ATL這些,靜態模板庫,動態模板庫,還難理解嗎?就是一大堆類的類,可以借此實現很多應用中需要的類,不需要程序員再自己寫而已。

  ok,STL都理解了,泛型開發還難嗎?所謂泛型開發,其實就是我做一個模板,來定義一套算法規則,但是呢,我希望這個算法規則,能進一步抽象,對核心數據類型不要限死,我把各種數據套進去,都可以用,這樣,僅算法這部分,我不需要重寫了。你想想是不是這個道理?

  學到這里,C++和C,其實已經差不多了。再學語言,就是求全責備,過于鉆牛角尖了。

  5、學習應用開發

  前面說了,學習語言,目的不是讓別人認為自己是專家,是為了寫程序賺錢。因此,語言學完,要學習應用開發。

  什么叫應用開發呢,我會一門語言,但是,客戶不懂,客戶說的很直接,在Windows下給我寫個程序,我要什么什么功能。為啥Windows呢?因為我習慣。

  OK,很多時候,應用開發要尊重客戶習慣,一般說來,語言這個東東,還是要結合具體平臺的開發,才能開發出有意義的應用程序賣錢。那么,一般說來,客戶端是Windows系統,服務器是Linux,這些都是行業習慣,嵌入式不好說,各種平臺都有,Palm,S60,Linux,WinCE,等等。要根據自己的目標客戶來定。

  當我們選定目標平臺后,有一個問題,選什么語言,很多時候,學生和商用程序員差別就在這里,學生一般沒得選,自己會啥就用啥唄,企業里的程序員不會,要先評估需求,看哪個語言更合適,不會的語言,要去學。

  ok,假定我們選了C和C++,那么,我們需要選擇開發平臺,Windows下不用說了,VC,這是最好用的,Linux下呢,gcc,其他的也差不多。

  假如我們開發VC,并且使用C++,這個時候,才需要考慮學習MFC了,因為這是微軟的標準類庫,至少Windows平臺下,它最權威,你看見沒有,我們從學習開始,走了多少步,才走到MFC?是不是MFC不是學習C++上來就必須學的?

  6、學習MFC

  學習MFC,很多人一上來就開始看其體系架構,看得一頭霧水,那個模塊關系依賴圖,我到現在都看不懂。

  呵呵,其實不是啦,和學語言一樣,我們學MFC的目的,也不是希望成為MFC的專家,而是要利用MFC開發Windows應用程序,為我們賺錢??匆姏]?MFC是手段,不是目的,目的是開發Windows程序。

  其實Windows下,有一套很標準的C接口,叫Win32API,這個才是Windows的標準編程核心,因此,學習MFC,真實的目的是理解Windows程序開發,建議可以先學習Win32API,看來我們又回到C了哈,呵呵。剛開始學C有用吧?

  7、Win32API

  其實Win32APi不難學的,因為雖然它很大,有很多接口,但不是必須的,我們真正做個簡單的Windows應用,其實用不到這么多的。做個簡單的Dialog,然后實現個功能,你遇到的接口函數,其實絕大多數,就是以后常用的了。把常用的記熟練,就ok了。

  關鍵是,這個時候要通過WinMain方式,去理解Windows的事件機制,這是核心,其實說起來簡單得要死。就是以前你的程序,由于沒有系統支撐,很多事必須自己做,比如檢查鼠標和鍵盤輸入,你需要寫個死循環,自己不斷去看,而Windows說,這些事你不要做了,我來做比你好。你沒事就玩去吧,我把和你相關的消息放到一個隊列里,就是你的事件隊列,你自己沒事去找找看,有沒有新消息來,有就做事,沒事就玩好了。很簡單是不?

  當然,Windows是多任務操作系統,有時候,我們的邏輯需要并發一些功能,比如說,我在等鼠標鍵盤消息的時候,需要再看看打印機準備好了沒有,這里就需要理解并行計算了,這和語言無關,和操作系統無關,這是另外一個話題,這里不多說了,你可以自己找找線程開發的相關資料看。

  看見沒,為了學習好Windows編程,其實我們不僅僅需要學習語言,還要學習操作系統,并行計算原理,內存原理,可能有時候還需要學習網絡通信,等很多知識,所以說,單憑學習語言,是成不了商用程序員的,一個合格的程序員,需要理解的東西,太多了,要廣為學習。

  當我們把Win32API,以及基本的窗口化程序設計理解了,就可以回到MFC繼續學習了。是不是有點遞歸返回的意思?呵呵。

  8、回到MFC

  原來學MFC很難的,因為其封裝了太多細節,很難理解透徹。不過還好,我們有侯老師的深入淺出MFC,去找本來看看,如何從Win32API的純C編程,改變為MFC的C++方式,看這個最快,基本上前6章看完,已經會了,這里我就不多說了。

  9、COM

  COM、COM、COM,我最頭疼的COM,呵呵。

  COM就是一種遠程過程調用,即你請求的代碼是在另外一個進程中運行的,通過某種通信協議來回傳遞參數和結果。僅此而已。DCOM進了一步,服務者可以在另外一臺計算機上。在公司開發中,大家可能各做一塊,如果要合作,Windows下建議多使用COM.(我個人喜歡socket通信哈)

  簡單說,COM提供了一種機制,可以跨進程通信,甚至跨機器通信。不過,為了傳遞各種類型的參數,COM可謂是無所不用其極,它發明了智能指針,可以指向任何類型的數據,同時,為了實現智能指針,它使用了大量的C++泛型設計,看見沒,C++的基本功就起作用了,還用到了ATL.

  學習COM,要注意一個接口的概念。由于開發者是不同的人,調用程序和服務程序,可能不是同一種語言,OK,不能簡單提供一個C或C++的。h文件來解答接口,因此,COM提供了標準接口,使用者在程序內部,以查詢方式獲得可用接口,進而以接口ID調用。很累人的。

  學會了COM,就可以多理解一點ActiveX了,那么再學習一點dll(動態鏈接庫)的知識,我們就已經可以寫OCX控件了。一般說來,OCX控件是個很好的設計,哪都能用,一個軟件的模塊,最理想是開發成這個樣子,比exe靈活。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品一区二区三区午夜版| 亚洲网站在线播放| 成人精品久久一区二区三区| 欧美色videos| 1769国内精品视频在线播放| 亚洲视频电影图片偷拍一区| 91精品久久久久久久久| 欧美精品在线免费播放| 久久天天躁狠狠躁夜夜躁2014| 亚洲bt欧美bt日本bt| 亚洲国产精品成人精品| 日韩精品视频在线播放| 亚洲精品少妇网址| 自拍偷拍亚洲一区| 亚洲国语精品自产拍在线观看| 午夜精品久久久久久久男人的天堂| 一区二区三区四区在线观看视频| 亚洲欧美中文日韩在线v日本| 日韩毛片在线观看| 欧美成年人视频| 美女性感视频久久久| 国产精品欧美激情在线播放| 国产精品国产福利国产秒拍| 久久久亚洲国产| 国产精品极品美女粉嫩高清在线| 亚洲无限av看| 在线观看成人黄色| 一本一本久久a久久精品综合小说| 亚洲国产日韩欧美在线99| 69av在线播放| 欧美亚洲激情视频| 91tv亚洲精品香蕉国产一区7ujn| 欧美激情欧美激情在线五月| 狠狠久久五月精品中文字幕| 国产精品私拍pans大尺度在线| 国产精品久久不能| 日韩精品免费视频| 国产在线视频2019最新视频| 成人激情视频网| 欧美黄色三级网站| 91丝袜美腿美女视频网站| 高清一区二区三区日本久| 久久精品免费电影| 亚洲欧美中文字幕在线一区| 亚洲综合中文字幕在线观看| 中文字幕国内精品| 成人黄色在线播放| 亚洲国产高清福利视频| 欧美在线视频a| 欧美激情奇米色| 久久香蕉国产线看观看网| 欧美另类69精品久久久久9999| 欧美第一淫aaasss性| 中文国产亚洲喷潮| 亚洲成人动漫在线播放| 久久久久久久一| 色小说视频一区| 2025国产精品视频| 亚洲天堂男人天堂| 欧美做爰性生交视频| 中文字幕视频在线免费欧美日韩综合在线看| 国产视频精品自拍| 国产精品丝袜久久久久久高清| 中日韩美女免费视频网址在线观看| 亚洲一区二区三区777| 亚洲欧美制服第一页| 欧美另类在线观看| 色妞久久福利网| 久久精品99久久久久久久久| 国产精品久久一区主播| 国产精品久久久久久久app| 欧美日韩国产在线播放| 日韩高清不卡av| 一区二区亚洲欧洲国产日韩| 欧美国产日产韩国视频| 亚洲激情中文字幕| 国产精品黄视频| 国产日韩中文字幕在线| 亚洲女人天堂视频| 欧美激情视频网站| 日韩精品在线免费播放| 热99在线视频| 夜夜嗨av一区二区三区免费区| 精品国产依人香蕉在线精品| 久久久久久亚洲| 日韩禁在线播放| 亚洲福利小视频| 精品久久久久久久久中文字幕| 性欧美xxxx| 国产精品免费久久久久影院| 久久精品国产一区| 欧美成人性生活| 国产成人中文字幕| 久热精品在线视频| 欧美精品在线免费观看| 一本久久综合亚洲鲁鲁| 精品日韩美女的视频高清| 人体精品一二三区| 91最新在线免费观看| 欧美在线性爱视频| 日韩精品免费在线播放| 欧洲午夜精品久久久| 97视频在线播放| 亚洲国产精品久久久| 亚洲精品中文字幕av| 久久人人爽人人爽人人片av高请| 欧美在线视频免费观看| 亚洲男人天堂2019| 精品久久久久久久久久久久久| 国产精品91在线观看| 北条麻妃久久精品| 亚洲人午夜精品| 国产精品日韩电影| 国产精品99久久久久久人| 欧美日韩一区二区三区在线免费观看| 久久国产精品久久国产精品| 日韩精品亚洲视频| 欧美日韩性生活视频| 国产精品xxxxx| 亚洲精品福利视频| 亚洲黄色片网站| 九色91av视频| 亚洲人成在线免费观看| 欧美激情喷水视频| 精品日韩美女的视频高清| 欧美激情欧美激情在线五月| 欧美乱人伦中文字幕在线| 日韩在线视频线视频免费网站| 亚洲精品久久7777777| 97免费视频在线| 97成人精品视频在线观看| 日韩一区视频在线| 欧美日韩999| 91精品视频免费观看| 国产日韩欧美中文| 欧美激情网友自拍| 亚洲高清久久久久久| 日韩欧美精品在线观看| 久久久久久国产精品| 亚洲黄色在线看| 91高清视频免费| 亚洲国产成人精品久久| 欧美激情中文字幕在线| 91九色国产视频| 欧美亚洲国产另类| 国产日韩精品电影| 日韩在线播放av| 亚洲成人精品久久| 国产精品亚洲网站| 国产日韩欧美黄色| 亚洲自拍高清视频网站| 91国产视频在线| 97超视频免费观看| 欧美精品激情视频| 久久精品国产久精国产一老狼| 成人午夜在线观看| 91亚洲精品久久久| 亚洲自拍高清视频网站| 亚洲成人久久一区| 在线播放精品一区二区三区| 夜夜躁日日躁狠狠久久88av| 91欧美激情另类亚洲| 国产成人综合av| 亚洲网站在线播放|