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

淺析C++語言風格問題

編輯:C++入門知識

對第一次接觸到C++語言的用戶和學者來說,了解C++語言的概念是非常重要的,那麼就先說一下什麼是C++語言,所謂C++語言:是一種使用非常廣泛的計算機編程語言。

這些跡象反映出C++語言來源於C又盡量與C保持兼容的設計思想——這種設計思想既為C++的迅速普及提供了便利C++語言的順利推廣顯然得益於C語言已有的龐大用戶群)。

也在C++的語言風格中深深地烙上了C語言的印記,以至於在若干年後,當C++語言已經基本具備了“獨立人格”的時候,Stroustrup還不得不時常提醒人們要盡量拋開C語言的思維方式。

另一方面,Stroustrup從Simula語言借用的類、派生、訪問控制等面向對象概念在帶類的C中牢牢地扎下了根。據Stroustrup介紹,他為C語言引入面向對象機制的本意在於尋找一種“合適的工具”。

以便實現分布式系統或解決類似的復雜問題。但無論怎樣,Stroustrup將C的高效和Simula的優雅捆綁在一起的做法都在事實上為C++語言埋下了“雙重性格”的種子——很難說這不是C++語言風格多樣化的直接誘因。

如果說C++語言的生身父母分別是C語言和Simula語言的話,那麼,1984年出現的,借助操作符重載實現的I/O流技術就是C++這個幼童甩開父母的庇護,向新的代碼風格邁出的第一步了。上面幾行代碼來自Stroustrup所著《C++程序設計語言》中的示例程序。注意那一行由“<<”連接的代碼,I/O流、變量、字符常量在代碼中被巧妙地串聯在一起。

從技術角度看,這種全新語法的引入彌補了C語言中printf()函數族缺乏類型安全機制和擴展能力的弱點。從代碼風格上說,“<<”等通俗易懂的運算符大大改變了程序員對C++語言的第一印象。

我自己第一次接觸C++ I/O流庫時,就曾清晰地感覺到,一個試圖擺脫C語言風格束縛的C++精靈正順著“<<”和“>>”組成的溪水“流淌”而來——這種行雲流水般的代碼風格在十幾年前就已經顯示出了C++語言在塑造新形象、引進新觀念方面的決心和勇氣。

20世紀80年代末到90年代初,X Window、Mac OS、Windows等窗口環境的先後出現為程序設計提出了新的課題,而C++語言兼顧面向對象和傳統開發方法的特性無疑使其成為了窗口環境下編程語言的最佳選擇。一批基於C++語言的窗口框架不僅在商業上取得了成功,也在很大程度上改變了C++語言本身的風格特點。

最早在窗口開發中贏得大多數程序員青睐的C++框架是Borland公司於1992年內置在Borland C++ 3.1中的OWLObject Windows Library)框架庫。下面這段代碼取自Borland C++ 的示例程序:

為了解決窗口編程中最關鍵的消息映射問題,OWL的設計者為C++語言的成員函數引入了“=[…]”的古怪語法,這是許多用過Borland C++的程序員至今都無法忘懷的一種語言風格。

我承認,Borland公司在C++語言的發展初期為我們提供了最好的編譯器和最出色的集成開發環境IDE),但Borland通過OWL框架為C++引入的另類語言風格的確讓人不敢恭維客觀地講,這筆賬也不應全算在Borland頭上,因為OWL的前身是Borland從White Water公司購買的框架代碼)。

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

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