程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 對C++語言入門簡介

對C++語言入門簡介

編輯:C++入門知識

C++語言是建立在C語言至上的一門簡單便捷的編程語言,C++語言的語法、特性、標准類庫就已經是一門非常高深的課程,所以在開始學習的時候,必須要具備很強的謹慎態度和責任心。

像所有國家的議會或人民代表大會一樣通過沒完沒了的會議、討論和投票制定C++的國際標准。標准直到1998年9月才正式發布。在國際標准化組織的檔案庫裡,C++標准的代號是ISO/IEC 14882:1998。

Stroustrup建議我們把標准C++當作一種全新的語言來學習[3]。這一說法顯然是基於這樣一個事實:標准C++語言已經擁有了一種穩定的、可以推廣的語言風格,即,通過對STL等既有技術的肯定,ANSI/ISO委員會在1998年的標准中正式認可了包括模板、容器類、I/O流庫、異常處理等典型語言特征的現代C++風格。

風格的穩定意味著語言本身的進步和成熟,也意味著程序員們對C++的認識必須上升到一個新的層次——那些至今還在編寫僅由類和C語言庫函數組成的C++代碼的程序員,一定會成為Stroustrup及其同仁們的取笑對象的。

Stroustrup的《C++程序設計語言》第3版對標准C++風格做了最權威的闡釋。在Stroustrup等專家學者的號召下,越來越多的項目開始編寫符合標准C++風格的代碼。這一點在許多開放源代碼的項目中體現得特別明顯。

這多半是由於,使用C++語言的開源項目大多都不會像大企業裡的項目組那樣,在語言風格上會受到公司背景或歷史習慣的羁絆。在具體的編程實踐中,開

例如,在OpenOffice的源碼中,標識符的前綴規范就相當有特點,連指針和引用類型的變量都由不同的前綴字母區分;下面給出的Linux桌面管理器KDE 3.1.4的源代碼片斷則顯示出,開發KDE的程序員在代碼風格上或多或少受到了Java語言風格的影響:

  1. class delUser: public KDialogBase {  
  2. Q_OBJECT  
  3. public:  
  4. delUser(KUser *AUser, QWidget *parent = 0,  
  5. const char *name = 0);  
  6. bool getDeleteHomeDir()  
  7. { return m_deleteHomeDir->isChecked(); }  
  8. bool getDeleteMailBox()  
  9. { return m_deleteMailBox->isChecked(); }  
  10. private:  
  11. QCheckBox *m_deleteHomeDir;  
  12. QCheckBox *m_deleteMailBox;  
  13. };  

語言風格的變遷從一個側面反映了技術思想和產業需求的嬗變規律。從1979年Stroustrup完成第一個Cpre預處理程序算起,C++語言來到這個世界上已經快滿25個年頭了。這是一種在實踐中誕生、成長和發展起來的語言。也許,Stroustrup從一開始就壓根兒也沒想把它設計成像Smalltalk那樣純粹的面向對象語言。開放性、高效率、兼容性和擴展性的需求將C++語言塑造成了一種典型的多模式Multiparadigm)語言。

無論是C++早期對Simula語言的繼承,還是後來對Smalltalk、Ada、Clu等語言的借鑒,無論是ANSI/ISO標准風格的迅速普及,還是Visual C++ .NET在技術創新上的不懈努力,所有這些歷史變遷都說明,C++在風格上的多樣性主要源自C++語言本身“海納百川”的胸襟和氣概。

5年以後,當C++步入而立之年的時候,它會給我們帶來新的驚喜嗎?我們還會看到更加新奇的C++語言風格嗎?也許,沒有誰能給出准確的答案。但作為程序員,我們至少應該知道:無論面對什麼樣的軟件需求。

無論使用什麼樣的思維方式,C++語言都賦予了我們選擇語言風格的最大自由;當我們真正理解了C++語言的精神實質之後,這種自由也必將成為所有優秀軟件和優雅代碼的堅實基礎。

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved