国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C/C++學習之路 - 雜文 - DarkMoon
C/C++學習之路
  有人說C語言已經過時了,學程序設計應該從面向對象語言開始。在這一點上我持保留意見。
1、關于C語言的學習
    在Linux下,大部分的程序還是C語言實現的。Win32 API仍然是用C語言實現的。
    WINDOWS平臺C++應用廣泛是微軟力推的結果,但是現在WINDOWS平臺應用軟件的開發(fā),有向C#偏移的趨勢,這要看VISTA系統推行的效果。到時候,恐怕大家又要跟風似的去學習C#了。作為初學者,不要盲目地去追時髦,到頭來吃到苦頭的永遠是你自己。就像C#,當你剛剛熟悉2.0版本以后,3.0版本已經問世了,又要勿勿忙忙搭上3.0的列車。。。時代在不斷進步,技術在不斷發(fā)展,我們要明白我們真正要學的基礎是什么?就像物理學一樣,在沒有學習經典力學之前,就想學習最新的相對論思想,這可能嗎?
不管C++、java、C#怎么發(fā)展,不管WINDOWS平臺青睞于哪種開發(fā)語言。C語言仍然是程序設計入門語言的首選。過早的接觸面向對象,會讓你忽于對計算機底層的了解。沒錯,編程首先是以人為主,然后才考慮機器.但是,只考慮人,而完全不考慮機器是大錯特錯的,那會導致你為所欲為,以為自己想到的,計算機就一定可以實現。然而,事實告訴我們,事情并不是我們想的那樣.
    在編譯器層面上,C++的實現最終仍然會被展開為C形式的,完全沒有封裝的代碼。程序,最終還是要在機器上運行。只有面向對象,而沒有C基礎,在理解計算機底層技術的時候,還是要回過頭來學習C語言的編程思想的。
    美國在使用java等面向對象語言作為入門語言幾年之后,現在已經又重新考慮使用C作為入門語言了,原因,正如我前述所說。
    此外,Linux倡導的編程藝術是簡單美。在今后相當長的時間內,Linux平臺下的軟件開發(fā)還是以C為主,當然,不排除KDE界面是用的C++,WEB開發(fā)使用java。
    至于編程思想的發(fā)展趨勢,現在C++積極提倡泛型編程的概念,這與面向對象是完全不同的概念,也是編程思想的一次革新。泛型同面向對象的結合,可以產生良好的效果。java和C#等面向對象語言也跟隨其后,提供了對泛型編程的支持。但無疑,C++在泛型編程方面是推進得最好的。
2、C++的學習
    建議學習C++從《C++ Primer》等經典外國名著入手,使C++的學習完全不依賴于平臺。
    畢竟,C++最先是在Unix系統,在貝爾實驗室提出來的。只是在WINDOWS上得到了發(fā)揚光大而已。
    一開始就輕視語言本身的學習,過早陷入MFC類庫,會讓你不能理解C++語言的真諦,寫出的C++代碼只能是C式的C++,這也是國內很多C++初學者常走的彎路。
    C++社區(qū)的大牛們現在都推薦把C++當作一門全新的語言來學習,完全與C區(qū)別開,使程序員不再寫C式的C++代碼。
    C++發(fā)展了二十年,已經不是簡單添加了類封裝的C語言了。如果你依然這么認為,那么你對C++的認識還停留在上個世紀80年代。
    然而,我在上面又說學習要先打好基礎,那不是要從最初的C++思想學起嗎?確實,我們應該了解C++的歷史,這對于我們理解這門語言非常有用。但并不是要你抱著80年代的C++書籍埋頭苦讀,而是伴隨在moder C++的學習過程當中。C式的C++相對于modern C++有太多的缺點,我們干嘛不學最好的方法呢。就像物理學一樣,其中的經典理論也經過了由錯到對的過程,那么,我們還要從錯誤的思想開始學習嗎?學習C語言,我們也要從ANSI C未出現之前學習嗎?當然不是,基礎,并不代表就是陳舊的東西。
    但是,在國內,C++標準庫的使用并不廣泛,很多人對C++的使用依然停留在對C代碼的簡單類庫封裝上。這是很可悲的。還好,從2000年開始,大量現代C++名著被引入國內或者翻譯為中文版,越來越多的人開始接觸modern C++。
國內的C++社區(qū),也涌現出了侯捷、榮耀、劉未鵬等少壯派高手。
還是那句話,學習C++一定要看國外名著,譚浩強、錢能的C++書還是放到一邊吧,他們在誤人子弟。
    C++大牛們推薦首選使用STL標準庫,因為它與平臺無關,而且拋棄了C語言中的種種缺陷和陷阱。但是人家沒有推薦MFC之類。
    充其量,MFC,現在我只用來做界面框架,因為自己用SDK敲界面框架實在太麻煩了。然而MFC并不是唯一選擇,WTL、QT都是不錯的界面庫。而且,實際上MFC的封裝模式早已跟不上C++的步伐,要知道MFC推出時,C++仍未標準化。然而MFC卻沒有跟著C++的發(fā)展不斷重構自己的類庫,實際上MFC基礎架構根本沒有什么大的變化。
    而現代C++類庫,如STL、ATL、WTL、BOOST、ACE、LOKI等等,都充分結合了泛型和面向對象的優(yōu)點,是現代C++的完美體現。MFC類庫,我承認,其中仍有許多東西值得我們學習。但是針對C++的設計思想來說,他的架構已經過時了,它仍然停留在對C語言的API簡單封裝的層次上,到處是稀奇古怪的宏代碼。這是不值得我們再學習的。
    至于進程和線程等底層處理,則直接使用API,即可以提高運行效率,又對于你認識操作系統很有幫助。
    在代碼的整體風格上,應該使用modern C++。在算法和數據處理上,盡量使用STL。只有使用到操作系統API的時候,才使用C語言。當然這其中有個C++代碼與C語言API交互的問題,其實很簡單,主要發(fā)生在vector和string上。
    最后,學習編程關鍵在于學習思想,不要禁錮于語言的細枝末節(jié)上。
     C語言是程序設計的基礎,C++的泛型思想可謂是程序設計思想的尖端、潮流
    在掌握基礎之后,學習頂尖的設計思想,就如同輕車熟路一樣,非常輕松。
個人觀點:
    風格是修養(yǎng),語法是外功,算法是內功,練好這3種才是真正高手
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
怎樣成為Windows平臺下的開發(fā)高手
C++、VC++、MFC的區(qū)別和聯系
快快參與-說出心目中的5本程序設計經典好書!
【分享】這些年看過的書
C語言和MFC編程的疑惑
搞程序不再霧里看花,分析初學者編程者應從何種語言開始學起?
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服