C++有什麼與眾不同之處?

出版圈郭志敏發表於2011-12-12

剛才說的關於C++的那些話大部分也同樣適用於其他程式設計語言,如Pascal、Java、FORTRAN或Basic,等等。它們都屬於高階語言,意思是它們看起來與機器碼沒有多少相似之處,在程式設計時需要使用更類似於英語單詞的關鍵字(例如if和while編寫程式碼)。

每一種程式設計語言都是為了某種不同的目的而研發出來的。Basic的設計思路側重於易學和易用,所以對語法的要求不那麼嚴格,從而比較容易養成一些不良的程式設計習慣。儘管如此,微軟公司還是把Visual Basic發展成了一種強大、方便、快速的Microsoft Windows應用程式開發工具並摒棄了它的一些鬆散之處。

Pascal是為學術環境而研發的,非常適合用來講授複雜的程式設計概念。雖然Pascal比Basic更為嚴謹和細緻,但你用C或C++能做到的某些事情,Pascal不一定能做到。

計算機界的傳奇人物Dennis Ritchie設計C語言的初衷是為了幫助自己編寫一個新的作業系統。它是一種精煉的程式設計語言,用它編寫出來的程式往往更加短小精悍。C語言有著簡明但全面的語法,這為它贏得了全世界程式設計師的喜愛。C語言的另一個優點是它的限制比其他程式設計語言少。

C++又有什麼與眾不同之處呢?

C語言和C++之間的主要區別是C++增加了物件導向的程式設計能力。這種能力非常適合用來解決複雜的問題,比如涉及圖形化使用者介面和網路環境之類的程式設計任務。作為物件導向的程式設計師,你必須回答以下3個問題。

(1) 你將要解決的問題裡的資料(也就是資訊)可以劃分為幾種?

(2) 應該為每種資料定義什麼樣的操作?

(3) 資料物件彼此之間如何互動?

根據我本人在學習物件導向程式設計技術時的體會,如果你已經掌握了基本的語句語法,學習起來就會很容易。因此,在第11章之前,我將不把討論重點放在物件導向的程式設計技術上。

在本書的開始階段,我會把一些物件(能夠對操作作出響應的資料)介紹給你。比如說,我在這一章裡用到的cout就是一個不屬於C語言的資料物件。在C語言裡,資訊的顯示是通過呼叫一個函式來完成的。所謂“函式”簡單地說就是一組預先定義好的語句。但在你使用cout的時候,是把資料傳送給一個物件,而那個物件知道應該如何顯示傳送給它的資訊。

這無疑是一種解決問題的絕佳辦法:cout知道如何顯示各種型別的資訊。更妙的是,你還可以擴充套件自定義的資料型別(類),讓它們與cout之類的輸出物件配合使用。

相關文章