C++讀作”C加加“雄右,是”C Plus Plus“的簡稱空骚。顧名思義,C++是在C語言的基礎上增加新特性擂仍,玩出了新花樣囤屹,所以叫”C Plus Plus“,就像iPhone 6S和iPhone 6逢渔、Win10和Win7的關系肋坚。
從C到C++
C語言是1972年由美國貝爾實驗室研制成功的,在當時算是高級語言肃廓,它的很多新特性都讓匯編程序員羨慕不已智厌,就像今天的Go語言,剛出生就受到追捧盲赊。C語言也是”時髦“的語言铣鹏,后來的很多軟件都用C語言開發(fā),包括Windows哀蘑、Linux等吝沫。
但是隨著計算機性能的飛速提高呻澜,硬件配置與幾十年前已有天壤之別,軟件規(guī)模也不斷增大惨险,很多軟件的體積都超過 1G羹幸,例如PhotoShop、Visual Studio等辫愉,用C語言開發(fā)這些軟件就顯得非常吃力了栅受,這時候C++就應運而生了。小編推薦一個學C/C++的學習裙【六二七恭朗,零一二屏镊,四六四】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習痰腮!裙內(nèi)有很多干貨和技術分享而芥!
在C語言中,我們會把重復使用或具有某項功能的代碼封裝成一個函數(shù)膀值,將具有相似功能的函數(shù)放在一個源文件;調(diào)用函數(shù)時棍丐,引入對應的頭文件就可以。
而在C++中沧踏,多了一層封裝歌逢,就是類(Class)。類由一組相關聯(lián)的函數(shù)翘狱、變量組成秘案。你可以將一個類或多個類放在一個源文件,使用時引入對應的類就可以潦匈。
不要小看這一層封裝阱高,它讓C++多了很多特性,成為面向對象的編程語言茬缩。
面向對象編程(ObjectOriented Programming讨惩,OOP)
類是一個通用的概念,C++寒屯、C#荐捻、Java、PHP等很多編程語言中都有類寡夹,你可以通過類來創(chuàng)建對象(Object)处面。
各位讀者先不要深究面向對象的概念,目前只需要記住菩掏,支持類和對象的編程語言就是面向對象的魂角,而像C語言,只能把代碼封裝到函數(shù)智绸,沒有類野揪,所以是面向過程的访忿。所謂面向過程,就是通過不斷地調(diào)用函數(shù)來實現(xiàn)預期的功能斯稳。
圖1:C語言中項目的組織方式
圖2:C++中項目的組織方式
面向對象編程在代碼執(zhí)行效率上絕對沒有任何優(yōu)勢海铆,它的主要目的是方便程序員組織和管理代碼,快速梳理編程思路挣惰,帶來編程思想上的革新卧斟。
面向對象程序設計,是針對開發(fā)較大規(guī)模的程序而提出來的憎茂,目的是提高軟件開發(fā)的效率珍语。不要把面向對象和面向過程對立起來,面向對象和面向過程不是矛盾的竖幔,而是各有用途板乙、互為補充的。
如果你希望開發(fā)一個貪吃蛇游戲拳氢,類和對象或許是多余的募逞,幾個函數(shù)就可以搞定;但如果開發(fā)一款大型游戲,那你絕對會使用C++饿幅。
C++代碼
C語言源文件后綴為.c,C++源文件后綴為.cpp戒职。C/C++使用相同的編譯器栗恩,Windows下一般是微軟的 cl.exe,Linux下一般是 GCC洪燥。
很多C語言初學者創(chuàng)建源文件時使用的后綴為 .cpp(或許你并沒有注意)磕秤,也完全沒有問題,編譯捧韵、鏈接市咆、運行都順利通過。這是因為C++幾乎完全兼容C語言再来,它們類似子集(C語言)和超集(C++)的概念蒙兰。也就是說,僅僅給你一段C語言代碼芒篷,你將無法確定它到底是C語言代碼還是C++代碼搜变。
不過C語言和C++的編譯方式不同,.c源文件會按照C語言的方式編譯针炉,.cpp源文件會按照C++的方式編譯挠他。后續(xù)我們會在編譯原理中講解。