C与C++的区别
C與C++的區(qū)別
- C++的起源
- C與C++的區(qū)別
- C與C++在一些方面哪個更優(yōu)秀
- 技術層面
- 商業(yè)層面
C++的起源
20世紀70年代中期,Bjarne Stroustrup在劍橋大學計算機中心工作。
他使用過Simula和ALGOL,接觸過C。
他對Simula的類體系感受頗深,對ALGOL的結構也很有研究,深知運行效率的意義。
既要編程簡單、正確可靠,又要運行高效、可移植,是Bjarne Stroustrup的初衷。
以C為背景,以Simula思想為基礎,正好符合他的設想。
1979年,Bjame Sgoustrup到了Bell實驗室,開始從事將C改良為帶類的C(C with classes)的工作。
1983年該語言被正式命名為C++。
自從C++被發(fā)明以來,它經(jīng)歷了3次主要的修訂,每一次修訂都為C++增加了新的特征并作了一些修改。
第一次修訂是在1985年,第二次修訂是在1990年,而第三次修訂發(fā)生在c++的標準化過程中。
在20世紀90年代早期,人們開始為C++建立一個標準,并成立了一個ANSI和ISO(Intemational Standards
Organization)國際標準化組織的聯(lián)合標準化委員會。
該委員會在1994年1月25曰提出了第一個標準化草案。
在這個草案中,委員會在保持Stroustrup最初定義的所有特征的同時,還增加了一些新的特征。
C與C++的區(qū)別
- C是面向過程的語言,C++是面向對象的語言。
- 動態(tài)管理內存的方法,C是使用malloc/free函數(shù),而C++使用new/delete關鍵字;
- C中的struct和C++的類,C++的類是C所沒有的,但是C中的struct是可以在C++中正常使用,并且C++對struct進行了進一步的擴展,使struct在C++中可以和class一樣當做類使用,而唯一和class不同的地方在于struct的成員默認訪問修飾符是public,而class默認的是private;
- C++支持函數(shù)重載,而C不支持函數(shù)重載,而C++支持重載的依仗就在于C++的名字修飾與C不同,例如在C++中函數(shù)int fun(int,int)經(jīng)過名字修飾之后變?yōu)?_fun_int_int ,而C是_fun,一般是這樣的,所以C++才會支持不同的參數(shù)調用不同的函數(shù)(C++編譯匯編時,會將重載的函數(shù)根據(jù)參數(shù)表,翻譯成不同的函數(shù)名來實現(xiàn)重載);
- C++中有引用,而C沒有;這樣就不得不提一下引用和指針的區(qū)別;
- C++全部變量的默認鏈接屬性是外鏈接,而C是內連接;
- C中用const修飾的變量不可以用在定義數(shù)組時的大小,但是C++用const修飾的變量可以(如果不進行&,解引用的操作的話,是存放在符號表的,不開辟內存);
- 此外,C++還有的一些特性(封裝、繼承、多態(tài)、泛型)等不一一列舉了。
C與C++在一些方面哪個更優(yōu)秀
技術層面
C占用資源少,運行速度較快。
C++面向對象的設計思想,擁有強大的特性和庫,開發(fā)效率高。
商業(yè)層面
C用于嵌入式開發(fā)和操作系統(tǒng)的開發(fā)。
C++用于商業(yè)軟件和網(wǎng)絡游戲開發(fā)。
參考與引用的網(wǎng)址:
[1].https://baike.baidu.com/item/C++/99272
[2].https://blog.csdn.net/bitboss/article/details/62884694
總結
- 上一篇: Java使用百度地图API,根据地址,查
- 下一篇: 2019中兴通讯软件开发岗c/c++方向