開發(fā)環(huán)境
如前面介紹的那樣,C++屬于一種靜態(tài)的編譯型語言,所以,開發(fā)環(huán)境配置過程中就需要用到對應(yīng)的編譯器。
C++有很多編譯器可以用,GCC或GNU Compiler Collection是最流行的C++編譯器之一。
下面是不同操作系統(tǒng)下的編譯器安裝方式。
如果你使用的是Linux,可能已經(jīng)默認(rèn)安裝了GCC。
如果沒有,可以通過如下命令安裝:
Linux下的IDE可以選擇Codeblocks IDE或Eclipse CDT在Linux。
macOS
在Mac上,你可以使用Clang或GCC,兩者都是免費(fèi)的。
雖然GCC支持更廣泛的C和C++標(biāo)準(zhǔn),但Clang在大多數(shù)情況下都能正常工作。
可以使用Homebrew安裝GCC:
開發(fā)工具方面,可以選擇Visual Studio Code或者Xcode。
Windows
在Windows上有很多好的編譯器。
在Windows上,Visual Studio提供了一個(gè)C++編譯器,該編譯器還可以構(gòu)建C語言程序。
Visual Studio有自己強(qiáng)大的、功能豐富的IDE,對于任何開始使用C或C++的人或主要針對Windows平臺(tái)的人來說,它是一個(gè)很好的選擇。
如果你想要更符合標(biāo)準(zhǔn)的編譯器,GCC(MinGW)也可以使用,Codeblocks IDE通過設(shè)置就可以滿足需求。
IDE方面,Clang是目前比較好用的的工具,除此之外,還有一些跨平臺(tái)的IDE,如Eclipse CDT、Jetbrains CLion和Netbeans,它們提供了功能齊全的C和C++開發(fā)環(huán)境。
最近,Visual Studio Code非?;馃幔诤芏?a target="_blank">編程語言比較受歡迎,它也可用于Linux和Mac環(huán)境。
C++入門
語法是一種編程語言的核心,也是用C++開發(fā)的基礎(chǔ),就如同我們說漢語、英語一樣,語法定義了C++代碼的組成和理解方式。
下面看一段示例代碼:
#include :這是一個(gè)頭文件庫,將功能導(dǎo)入到程序中。該命令的含義是程序從一個(gè)名的文件中導(dǎo)入內(nèi)容,該文件代表輸入和輸出流。
using namespace std:指的是來自標(biāo)準(zhǔn)庫(std)的對象和變量名稱,通常用關(guān)鍵字std和運(yùn)算符::來縮寫。
int main ( ): 指定了一個(gè)主函數(shù)。函數(shù)是C++程序的一個(gè)重要部分,因?yàn)樗鼈冊诖a中定義了一個(gè)動(dòng)作,包含在括號(hào){ }中的代碼將被執(zhí)行。
cout(讀作see-out):是一個(gè)定義輸出的對象,也就是代碼中的字串,這里會(huì)輸出Hello World。
return 0:指示程序不返回任何東西,文本字符串將是唯一的輸出。
<<:是一個(gè)用于命名對象的操作符,而;(分號(hào)冒號(hào))則作為一行代碼的結(jié)束標(biāo)識(shí)。
把這些放在一起,就組成了一段完成的C++代碼。
通過這段簡短的代碼就簡單的涵蓋了C++中的一些基本語法,如果不首先學(xué)會(huì)基礎(chǔ)語法,看這段代碼如同天書一樣,不知道它在做什么?它有什么含義?
如果了解基本語法,就能夠像看一段漢語一樣輕松理解它表示什么。
基本語法只是入門的一個(gè)方面,除此之外還要對如下內(nèi)容有基本的認(rèn)知:
函數(shù)--一個(gè)函數(shù)是一組語句,它們共同執(zhí)行一項(xiàng)任務(wù),每個(gè)C++程序至少有一個(gè)函數(shù)
數(shù)組--數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)固定大小的同類元素的順序集合
字符串- 字符串是由字符組成的一維數(shù)組,以空字符'/0'結(jié)束
指針- 指針是變量,其值是其他變量的地址。指針有助于更容易地執(zhí)行C++任務(wù),有些任務(wù)沒有它們就無法執(zhí)行
引用--引用是一個(gè)別名,是一個(gè)已經(jīng)存在的變量的另一個(gè)名字。如果一個(gè)引用被初始化為一個(gè)變量,那么這個(gè)變量的名字和引用的名字就可以交替使用來指代這個(gè)變量
類和對象--類是C++的一個(gè)關(guān)鍵特征,通過將數(shù)據(jù)表示和操作該數(shù)據(jù)的方法結(jié)合到一個(gè)包中來指定一個(gè)對象的形式
多態(tài)--多態(tài)意味著有多種形式。在C++中,這指的是調(diào)用一個(gè)數(shù)值函數(shù)導(dǎo)致不同的函數(shù)被執(zhí)行,這取決于調(diào)用該函數(shù)的對象的類型
C++實(shí)戰(zhàn)
在入門C++并學(xué)習(xí)了一些C++編程技巧后,接下來需要做的就是把它們好好利用起來了,在實(shí)戰(zhàn)中打磨并熟練C++。
做到這一點(diǎn)的一個(gè)方法是通過做一個(gè)項(xiàng)目來了解該語言的各個(gè)方面是如何結(jié)合起來的。
目前Github上有很多相關(guān)的項(xiàng)目,我們可以通過閱讀相關(guān)的代碼,理解它的實(shí)現(xiàn)過程,然后自己復(fù)現(xiàn)相關(guān)的項(xiàng)目來起到實(shí)戰(zhàn)的作用。
也可以根據(jù)自己感興趣的領(lǐng)域,給你尋找一些相關(guān)的需求場景,然后通過C++實(shí)現(xiàn)相應(yīng)的工具或者軟件。
例如,開發(fā)一款簡單的小游戲、實(shí)現(xiàn)一個(gè)文獻(xiàn)翻譯工具、開發(fā)一個(gè)簡易的計(jì)算器等等。
C++進(jìn)階
中級(jí)和高級(jí)C++編程建立在基礎(chǔ)知識(shí)之上。
《C++ Crash Course》一書的作者Lospinoso說,在中級(jí)階段,程序員需要了解引用和指針如何工作。支撐最強(qiáng)大的C++功能的其他核心概念,例如,對象生命周期和多態(tài)。
對這些概念如何理解、如何使用,以及如何高效的應(yīng)用于項(xiàng)目中,則是走上進(jìn)階路線上必須學(xué)會(huì)的。
在進(jìn)階之路上,一個(gè)C++程序要做的就不再是如何通過基本語法或者面向?qū)ο缶幊倘?shí)現(xiàn)一項(xiàng)功能或者一個(gè)系統(tǒng),而是學(xué)會(huì)并熟練通用編程、泛型編程,也就是說,需要考慮代碼的通用性、可擴(kuò)展性,以便后續(xù)可以更好的向后兼容,以及更加容易適應(yīng)多平臺(tái)的需求。
審核編輯:湯梓紅
?
評論
查看更多