類是C++對于C的結(jié)構(gòu)體擴展,通過結(jié)構(gòu)體定義出來的變量還是叫變量,而通過類定義出來的變量有了新的名字,叫做對象。
可以將類比喻成圖紙,對象比喻成零件,圖紙說明了零件的參數(shù)(成員變量)及其承擔(dān)的任務(wù)(成員函數(shù));一張圖紙可以生產(chǎn)出多個具有相同性質(zhì)的零件,不同圖紙可以生產(chǎn)不同類型的零件。
類只是一張圖紙,起到說明的作用,不占用內(nèi)存空間;對象才是具體的零件,要有地方來存放,才會占用內(nèi)存空間。
在C++中,通過類名就可以創(chuàng)建對象,即將圖紙生產(chǎn)成零件,這個過程叫做類的實例化,因此也稱對象是類的一個實例(Instance)。
有些資料也將類的成員變量稱為屬性(Property),將類的成員函數(shù)稱為方法(Method)。
C語言中,我們會把重復(fù)使用或具有某項功能的代碼封裝成一個函數(shù),將擁有相關(guān)功能得多個函數(shù)放在一個源文件中,在提供一個對應(yīng)的頭文件,這就是一個模塊。引入對應(yīng)的頭文件來使用相關(guān)模塊。
C++中,多了一層封裝,類(class)放入到一個源文件中,使用時引入對應(yīng)的類就可以了
對于不帶.h的頭文件,所有的符號都位于命名空間std中,使用時需要聲明命名空間std;對于帶.h的頭文件,沒有使用任何命名空間,所有符號都位于全局作用于,這也是C++標(biāo)準(zhǔn)所規(guī)定的的。
using namespace std;有作用域的區(qū)別
cout和cin都是c++的內(nèi)置對象,而不是關(guān)鍵字
在for內(nèi)部定義循環(huán)控制變量i,會讓代碼看起來更加緊湊,并使得i的作用域被限制在整個for循環(huán)語句內(nèi)部(包括循環(huán)條件和循環(huán)體),減小了命名沖突的概率
new和delete:分配一組連續(xù)的數(shù)據(jù),可以使用new[],例如new int[10],而釋放則用delete[] p
在C++中,建議使用new和delete來管理內(nèi)存,它們可以使用C++的一些新特性,最明顯的是可以自動調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)
默認(rèn)函數(shù):可以減少要定義的析構(gòu)函數(shù),方法以及方法重載的數(shù)量