六星云課堂:關(guān)于C++,有哪些你需要提前知道的知識?

C++是一種通用的、面向?qū)ο蟮木幊陶Z言,可用于開發(fā)操作系統(tǒng)、游戲、圖形用戶界面、后端以及高性能系統(tǒng)和應(yīng)用程序。
所以,盡管Python、Go這些后起之秀近幾年熱度非常高,但是在很多領(lǐng)域還是無法撼動C++的地位。
今天,六星云課堂就從淺到深,從入門到實戰(zhàn),教你如何學(xué)習(xí)C++。

什么是C++?
現(xiàn)如今,流行的編程語言非常多,Python、Go、Java、PHP、JavaScript等等,它們各有自己擅長的領(lǐng)域和方向。
而C++則在系統(tǒng)資源和內(nèi)存控制更勝一籌,因此,在操作系統(tǒng)、圖形圖像、游戲、嵌入式這些對性能要求較高的領(lǐng)域,C++一直都具有不可替代的地位。
它可以用來開發(fā)在多個平臺上運行的應(yīng)用程序,如服務(wù)器、個人電腦、基于云的系統(tǒng)和移動設(shè)備。
為什么學(xué)C++?
如果你對計算機游戲、高端計算項目的軟件工程、加密貨幣挖礦程序和開發(fā)移動設(shè)備的操作系統(tǒng)等領(lǐng)域感興趣,學(xué)習(xí)C++則是必不可少的。
此外,相對于Go、Python這些更加高階的編程語言,會涵蓋更加全面的編程知識,也有助于學(xué)習(xí)者理解變量、函數(shù)、面向?qū)ο?、指針、?nèi)存...這些在很多高階語言中容易被忽略的概念和知識。
C++的歷史
C++是由丹麥計算機科學(xué)家Bjarne Stroustrup(比雅尼·斯特勞斯特魯普)創(chuàng)造、設(shè)計和開發(fā)的。
斯特魯斯特魯普想制造一種類似于C語言的靈活和動態(tài)的語言,但是,需要擁有更多的功能。
它最初被稱為 "C with classes",在1983年被重新命名為C++,意思是 比C高一等。
國際標(biāo)準(zhǔn)化組織的C++聯(lián)合技術(shù)委員會在1998年至2017年間對C++進(jìn)行了五次升級。
一個新的版本,C++20,計劃也在計劃中將要發(fā)布。
C和C++的區(qū)別
C和C++有哪些區(qū)別?
這是在學(xué)習(xí)C或者C++時無法繞開的一個問題。
Jon Kalb(軟件工程講師、C++ Now和CppCon的主席)說,C++是C的進(jìn)化。
雖然它們有一些相似之處,但現(xiàn)在兩者有很大的不同。
雖然C語言被廣泛使用,但Kalb說它并不像C++那樣支持抽象、通用編程和面向?qū)ο缶幊獭?/p>
在大型項目中,往往需要非常高層次的抽象,在這方面C++要遠(yuǎn)勝于C語言。
抽象層指的是觀察或編程一個系統(tǒng)的復(fù)雜程度。低層次的抽象有更多的細(xì)節(jié),而高層次的抽象可以包括整個系統(tǒng)。
C語言是一種程序性語言,它的代碼由指令組成,直接告訴計算機或其組件按邏輯步驟完成一項任務(wù)。
C++也可以做到這一點,而且,在此基礎(chǔ)上它支持高級功能,如類和面向?qū)ο?,它允許程序員創(chuàng)建包含數(shù)據(jù)和功能的 "對象"。這種方法的優(yōu)點是,軟件對象比程序性指令執(zhí)行得更快,更容易執(zhí)行,而且面向?qū)ο蟮木幊淌勾a更容易修改、維護和調(diào)試。
編譯型語言和解釋型語言
提起編程語言,就必須先要理解語言所屬類型 。
編程語言可以分為編譯型語言和解釋型語言,下面分別解釋一下。
編譯型語言:程序在執(zhí)行之前需要一個專門的編譯過程,把程序編譯成 為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結(jié)果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺性差些。比較有代表性的有C、C++等。
解釋型語言:相對于編譯型語言存在的,源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,程序在運行時才翻譯成機器語言,每執(zhí)行一次都要翻譯一次,因此效率比較低。比較有代表性的包括Java、Python、JavaScript等。
從入門到實戰(zhàn)
因為C++很受歡迎,所以有很多資源可供初學(xué)者使用,包括在線教程、網(wǎng)站和書籍。
當(dāng)決定學(xué)習(xí)C++或任何其他計算機語言時,你首先要清楚將它用于什么方向、什么崗位。
如果你從事機器學(xué)習(xí)、深度學(xué)習(xí)、數(shù)據(jù)分析這些偏重于算法和分析、對性能不敏感的崗位,你完全可以選擇R或者Python這些語言替代。
但是,如果你從事游戲、系統(tǒng)等對性能有嚴(yán)格要求的崗位,C++則是首要的選擇。
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星云課堂!