柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 C++的介紹與認(rèn)識(shí)
柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 C++的介紹與認(rèn)識(shí)
目錄
前言
1.什么是C++
2.C++的發(fā)展歷史
3.C++參考文檔
4.C++重要性
4.1C++特點(diǎn)
4.2編程語(yǔ)言排行榜
4.3 C++的應(yīng)用領(lǐng)域
5.C++學(xué)習(xí)指南
1. 基礎(chǔ)知識(shí)
2. 面向?qū)ο缶幊蹋∣OP)
3. 泛型編程
4. 標(biāo)準(zhǔn)庫(kù)(STL)
結(jié)束語(yǔ)
前言
學(xué)習(xí)了C語(yǔ)言的知識(shí),今天小編將進(jìn)軍C++的知識(shí),本篇博客可能略微枯燥,主要是對(duì)C++的相關(guān)介紹和認(rèn)識(shí),以及學(xué)習(xí)路線,下節(jié)將正式進(jìn)入C++的學(xué)習(xí)。
1.什么是C++
C++起源于C語(yǔ)言,但通過(guò)引入面向?qū)ο缶幊蹋∣OP)和泛型編程的特性,使其功能更為豐富和靈活。它被廣泛應(yīng)用于系統(tǒng)/應(yīng)用程序開(kāi)發(fā)、游戲開(kāi)發(fā)、嵌入式系統(tǒng)等領(lǐng)域,因其性能優(yōu)越和可擴(kuò)展性而受到程序員的青睞。
2.C++的發(fā)展歷史
C++的起源可以追溯到1979年,當(dāng)時(shí)Bjarne Stroustrup(本賈尼·斯特勞斯特盧普,這個(gè)翻譯的名字不同的地方可能有差異)在貝爾實(shí)驗(yàn)室從事計(jì)算機(jī)科學(xué)和軟件工程的研究工作。面對(duì)項(xiàng)目中復(fù)雜的軟件開(kāi)發(fā)任務(wù),特別是模擬和操作系統(tǒng)的開(kāi)發(fā)工作,他感受到了現(xiàn)有語(yǔ)言(如C語(yǔ)言)在表達(dá)能力、可維護(hù)性和可擴(kuò)展性方面的不足。
1983年,Bjarne Stroustrup在C語(yǔ)言的基礎(chǔ)上添加了面向?qū)ο缶幊痰奶匦?,設(shè)計(jì)出了C++語(yǔ)言的雛形,此時(shí)的C++已經(jīng)有了類、封裝、繼承等核心概念,為后來(lái)的面向?qū)ο缶幊痰於嘶A(chǔ)。這一年該語(yǔ)言被 正式命名為C++。
在隨后的幾年中,C++在學(xué)術(shù)界和工業(yè)界的應(yīng)用逐漸增多。一些大學(xué)和研究所開(kāi)始將C++作為教學(xué)和研 究的首選語(yǔ)言,而一些公司也開(kāi)始在產(chǎn)品開(kāi)發(fā)中嘗試使用C++。這一時(shí)期,C++的標(biāo)準(zhǔn)庫(kù)和模板等特性 也得到了進(jìn)一步的完善和發(fā)展。
C++的標(biāo)準(zhǔn)化?作于1989年開(kāi)始,并成立了一個(gè)ANSI和ISO(International Standards
Organization)國(guó)際標(biāo)準(zhǔn)化組織的聯(lián)合標(biāo)準(zhǔn)化委員會(huì)。1994年標(biāo)準(zhǔn)化委員會(huì)提出了第一個(gè)標(biāo)準(zhǔn)化
案。在該草案中,委員會(huì)在保持斯特勞斯特盧普最初定義的所有特征的同時(shí),還增加了部分新特征。
在完成C++標(biāo)準(zhǔn)化的第一個(gè)草案后不久,STL(Standard Template Library)是惠普實(shí)驗(yàn)室開(kāi)發(fā)的一系 列軟件的統(tǒng)稱。它是AlexanderStepanov、Meng Lee和David R Musser在惠普實(shí)驗(yàn)室工作時(shí)所開(kāi)發(fā)出來(lái)的。在通過(guò)了標(biāo)準(zhǔn)化第一個(gè)草案之后,聯(lián)合標(biāo)準(zhǔn)化委員會(huì)投票并通過(guò)了將STL包含到C++標(biāo)準(zhǔn)中的提議。STL對(duì)C++的擴(kuò)展超出C++的最初定義范圍。雖然在標(biāo)準(zhǔn)中增加STL是個(gè)很重要的決定,但也因此延緩了C++標(biāo)準(zhǔn)化的進(jìn)程。
1997年11月14日,聯(lián)合標(biāo)準(zhǔn)化委員會(huì)通過(guò)了該標(biāo)準(zhǔn)的最終草案。1998年,C++的ANSI/IS0標(biāo)準(zhǔn)被投入使用。
3.C++參考文檔
https://legacy.cplusplus.com/reference/
https://zh.cppreference.com/w/cpp
https://en.cppreference.com/w/
說(shuō)明:第一個(gè)鏈接不是C++官方文檔,標(biāo)準(zhǔn)也只更新到C++11,但是以頭文件形式呈現(xiàn),內(nèi)容比較易看好懂。后兩個(gè)鏈接分別是C++官方文檔的中文版和英文版,信息很全,更新到了最新的C++標(biāo)準(zhǔn),但是相比第一個(gè)不那么易看;幾個(gè)文檔各有優(yōu)勢(shì),可以結(jié)合著使用。
4.C++重要性
C++是一種具有廣泛應(yīng)用和深遠(yuǎn)影響的編程語(yǔ)言,無(wú)論是系統(tǒng)開(kāi)發(fā)、游戲編程、還是嵌入式系統(tǒng),C++都發(fā)揮著至關(guān)重要的作用。
4.1C++特點(diǎn)
1. 高性能和效率
C++的一個(gè)顯著特點(diǎn)是其高性能和高效性。通過(guò)直接訪問(wèn)硬件和內(nèi)存,C++允許開(kāi)發(fā)者編寫(xiě)優(yōu)化的代碼,從而實(shí)現(xiàn)出色的運(yùn)行速度和資源管理。這使得C++在需要高性能計(jì)算的領(lǐng)域中,如游戲開(kāi)發(fā)、圖形渲染和科學(xué)計(jì)算,成為首選的編程語(yǔ)言。
2. 面向?qū)ο缶幊?/p>
C++引入了面向?qū)ο缶幊蹋∣OP)的概念,包括類、繼承和多態(tài)性。這使得開(kāi)發(fā)者可以通過(guò)抽象和封裝來(lái)提高代碼的可維護(hù)性和可擴(kuò)展性。面向?qū)ο缶幊淌沟脧?fù)雜系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)變得更加直觀和模塊化。
3. 泛型編程和模板
C++的模板機(jī)制允許編寫(xiě)泛型代碼,這不僅提高了代碼的復(fù)用性和靈活性,還減少了冗余代碼的編寫(xiě)。通過(guò)模板,開(kāi)發(fā)者可以創(chuàng)建通用的數(shù)據(jù)結(jié)構(gòu)和算法,從而提高開(kāi)發(fā)效率和代碼質(zhì)量。
4. 標(biāo)準(zhǔn)庫(kù)(STL)
C++標(biāo)準(zhǔn)庫(kù)(STL)提供了豐富的工具集,包括各種容器(如vector、map、set)和算法(如排序、查找)。STL極大地簡(jiǎn)化了數(shù)據(jù)管理和操作,使開(kāi)發(fā)者能夠?qū)W⒂诤诵臉I(yè)務(wù)邏輯,而無(wú)需從頭實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法。
5. 廣泛的應(yīng)用領(lǐng)域
C++在多個(gè)領(lǐng)域中都有著廣泛的應(yīng)用:
系統(tǒng)編程:由于其高效性,C++常用于操作系統(tǒng)、驅(qū)動(dòng)程序和底層系統(tǒng)組件的開(kāi)發(fā)。
游戲開(kāi)發(fā):C++的高性能和強(qiáng)大的圖形處理能力使其成為游戲引擎開(kāi)發(fā)的首選語(yǔ)言,如Unreal Engine和Unity。
嵌入式系統(tǒng):C++的靈活性和低級(jí)硬件訪問(wèn)能力使其適用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備的開(kāi)發(fā)。 - **
金融工程:在高頻交易和金融建模中,C++因其高性能和可靠性被廣泛使用。
6. 社區(qū)和生態(tài)系統(tǒng)
C++擁有一個(gè)龐大的開(kāi)發(fā)者社區(qū)和豐富的生態(tài)系統(tǒng)。從開(kāi)源庫(kù)和框架,到在線資源和教程,C++開(kāi)發(fā)者可以輕松找到所需的支持和工具。這種強(qiáng)大的社區(qū)支持使得C++在現(xiàn)代編程語(yǔ)言中保持了持久的生命力和創(chuàng)新力。
4.2編程語(yǔ)言排行榜
TIOBE排?榜是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如
Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube和Baidu(百度)統(tǒng)計(jì)出排名數(shù)據(jù),只是反映某個(gè)編程語(yǔ)言的熱門(mén)程度,并不能說(shuō)明一門(mén)編程語(yǔ)言好不好,或者一門(mén)語(yǔ)言所編寫(xiě)的代碼數(shù)量多少。
2024年6月TIOBE發(fā)布的編程語(yǔ)言排行榜
4.3 C++的應(yīng)用領(lǐng)域
C++的應(yīng)用領(lǐng)域服務(wù)器端、游戲(引擎)、機(jī)器學(xué)習(xí)引擎、音視頻處理、嵌入式軟件、電信設(shè)備、金融應(yīng)用、基礎(chǔ)庫(kù)、操作系統(tǒng)、編譯器、基礎(chǔ)架構(gòu)、基礎(chǔ)工具、硬件交互等很多方面都有。
1. 大型系統(tǒng)軟件開(kāi)發(fā)。如編譯器、數(shù)據(jù)庫(kù)、操作系統(tǒng)、瀏覽器等等
2. 音視頻處理。常見(jiàn)的音視頻開(kāi)源庫(kù)和方案有FFmpeg、WebRTC、Mediasoup、ijkplayer,音視頻 開(kāi)發(fā)最主要的技術(shù)棧就是C++。
3. PC客戶端開(kāi)發(fā)。一般是開(kāi)發(fā)Windows上的桌面軟件,?如WPS之類的,技術(shù)棧的話?般是C++和QT,QT 是一個(gè)跨平臺(tái)的 C++圖形用戶界面(Graphical User Interface,GUI)程序。
4. 服務(wù)端開(kāi)發(fā)。各種大型應(yīng)用網(wǎng)絡(luò)連接的高并發(fā)后臺(tái)服務(wù)。這塊Java也比較多,C++主要用于一些對(duì)性能要求比較高的地方。如:游戲服務(wù)、流媒體服務(wù)、量化高頻交易服務(wù)等
5. 游戲引擎開(kāi)發(fā)。很多游戲引擎就都是使用C++開(kāi)發(fā)的,游戲開(kāi)發(fā)要掌握C++基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu),學(xué)習(xí)圖形學(xué)知識(shí),掌握游戲引擎和框架,了解引擎實(shí)現(xiàn),引擎源代碼可以學(xué)習(xí)UE4、Cocos2d-x等開(kāi)源引擎實(shí)現(xiàn)
6. 嵌入式開(kāi)發(fā)。嵌入式把具有計(jì)算能力的主控板嵌入到機(jī)器裝置或者電子裝置的內(nèi)部,通過(guò)軟件能夠控制這些裝置。比如:智能手環(huán)、攝像頭、掃地機(jī)器人、智能音響、門(mén)禁系統(tǒng)、車載系統(tǒng)等等,粗略?點(diǎn),嵌入式開(kāi)發(fā)主要分為嵌入式應(yīng)用和嵌入式驅(qū)動(dòng)開(kāi)發(fā)。
7. 機(jī)器學(xué)習(xí)引擎。機(jī)器學(xué)習(xí)底層的很多算法都是用C++實(shí)現(xiàn)的,上層用python封裝起來(lái)。如果只想準(zhǔn)備數(shù)據(jù)訓(xùn)練模型,那么學(xué)會(huì)Python基本上就夠了,如果想做機(jī)器學(xué)習(xí)系統(tǒng)的開(kāi)發(fā),那么需要學(xué) 會(huì)C++。
8. 測(cè)試開(kāi)發(fā)/測(cè)試。每個(gè)公司研發(fā)團(tuán)隊(duì),有研發(fā)就有測(cè)試,測(cè)試主要分為測(cè)試開(kāi)發(fā)和功能測(cè)試,測(cè)試開(kāi)發(fā)一般是使用一些測(cè)試工具(selenium、Jmeter等),設(shè)計(jì)測(cè)試用例,然后寫(xiě)?些腳本進(jìn)行自動(dòng)化測(cè)試,性能測(cè)試等,有些還需要自行開(kāi)發(fā)一些測(cè)試用具。功能測(cè)試主要是根據(jù)產(chǎn)品的功能,設(shè)計(jì)測(cè)試用例,然后手動(dòng)的方式進(jìn)行測(cè)試。
5.C++學(xué)習(xí)指南
1. 基礎(chǔ)知識(shí)
在學(xué)習(xí)C++時(shí),首先要掌握其基本語(yǔ)法和語(yǔ)義。C++繼承了C語(yǔ)言的許多特性,如變量聲明、控制流(if-else、for、while循環(huán))、基本數(shù)據(jù)類型(例如int、double、string)等。
變量和數(shù)據(jù)類型:了解不同的數(shù)據(jù)類型和如何聲明變量,以及它們?cè)趦?nèi)存中的存儲(chǔ)方式和限制。
運(yùn)算符:包括算術(shù)運(yùn)算符、邏輯運(yùn)算符和比較運(yùn)算符的使用方法。
流控制:理解條件語(yǔ)句(if-else)、循環(huán)語(yǔ)句(for、while)及其在編程中的應(yīng)用。
2. 面向?qū)ο缶幊蹋∣OP)
C++的一個(gè)重要特性是面向?qū)ο缶幊?,這使得代碼更易于維護(hù)、擴(kuò)展和重用。
重要的OOP概念:
類與對(duì)象:學(xué)習(xí)如何定義類和創(chuàng)建對(duì)象,以及如何使用成員函數(shù)和數(shù)據(jù)成員。
繼承與多態(tài):掌握如何建立繼承關(guān)系,派生類的定義,以及多態(tài)如何實(shí)現(xiàn)基類指針的多種形態(tài)。?
3. 泛型編程
泛型編程通過(guò)模板(templates)提供了一種編寫(xiě)通用代碼的方法,使得數(shù)據(jù)結(jié)構(gòu)和算法可以與數(shù)據(jù)類型無(wú)關(guān)地工作。
重要的概念包括: 函數(shù)模板和類模板:了解如何定義和使用模板,以及如何通過(guò)模板實(shí)現(xiàn)通用的算法和數(shù)據(jù)結(jié)構(gòu)。
4. 標(biāo)準(zhǔn)庫(kù)(STL)
C++標(biāo)準(zhǔn)庫(kù)(STL)提供了豐富的數(shù)據(jù)結(jié)構(gòu)和算法,使得開(kāi)發(fā)者能夠更高效地進(jìn)行編程。
一些常用的STL組件包括: 容器:例如vector、map、set等,用于存儲(chǔ)和管理數(shù)據(jù)。
算法:包括排序、查找、迭代等,能夠直接應(yīng)用于STL容器。?
結(jié)束語(yǔ)
相信通過(guò)本篇博客,大家對(duì)C++有了進(jìn)一步的理解和認(rèn)識(shí),最后感謝大家的閱讀與支持?。?!
柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 C++的介紹與認(rèn)識(shí)
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。