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