C++有什麼與眾不同之處?
剛才說的關於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之類的輸出物件配合使用。
相關文章
- 有線網路卡與無線網路卡有什麼不同之處?
- Linux和Unix有什麼不同之處?Linux
- Python和Java之間有什麼不同之處?PythonJava
- java和c++有什麼不同JavaC++
- C++和Java有什麼不同C++Java
- 嵌入式Linux是什麼?它與普通Linux有什麼不同之處?Linux
- Python和Java之間有什麼不同之處?總結!PythonJava
- 幽默系列:程式設計師與眾不同之處程式設計師
- GNU是什麼?與Linux的不同之處在哪?Linux
- Linux 與 BSD 有什麼不同?Linux
- Linux與BSD有什麼不同?Linux
- 開源與烹飪有什麼相似之處?
- rmdir命令和rm命令是什麼?兩者有何不同之處?
- SFTP是什麼協議?優勢有哪些?與FTP有什麼不同?FTP協議
- Linux系統有什麼特性?與Windows對比有什麼不同?LinuxWindows
- 什麼是 WebSocket,它與 HTTP 有何不同?WebHTTP
- 機械硬碟和固態硬碟有什麼不同之處?哪個更耐用?硬碟
- Python列表和字典有什麼不同之處?Python學習資料!Python
- 原生IP是什麼?有什麼獨到之處?
- 為什麼Linux這麼的與眾不同呢?Linux入門Linux
- 國內伺服器和香港伺服器有什麼區別?有4點不同之處!伺服器
- 兩者在理論基礎上有什麼區別?在模式識別中的應用有什麼不同之處(應用的方面有什麼不同)?模式
- python語言與其他語言有什麼不同?Python
- 強化學習與其他機器學習方法有什麼不同?強化學習機器學習
- 請教下web server與app server有什麼不同呢!WebServerAPP
- Kotlin 與 JAVA 不同之處KotlinJava
- Linux發行版Ubuntu與Debian之間有哪些不同之處LinuxUbuntu
- 資料中心交換機與普通交換機有什麼不同?
- Windows中的域與DNS中的域有什麼不同WindowsDNS
- 什麼是web2py框架?有什麼獨特之處?Web框架
- 【python基礎】什麼是動態IP?與靜態ip有什麼不同?Python
- Linux中awk和sed分別指什麼?兩者之間有什麼不同?Linux
- Elasticsearch 之 Filter 與 Query 有啥不同?ElasticsearchFilter
- 什麼是Clustered Table,與其他型別的table有何不同型別
- struct和typedef struct 有什麼不同呢?Struct
- YottaChain和IPFS礦機有什麼不同?AI
- Go和Java的interface有什麼不同GoJava
- Linux vs. Unix:有什麼不同?Linux