1、編譯器分兩步處理類:首先編譯成員的聲明,然后才輪到成員函數(shù)體。因此,成員函數(shù)體可以隨意使用類中的其他成員而無(wú)須在意這些成員出現(xiàn)的次序。
2、C++ IO對(duì)象屬于不能被拷貝的類型,當(dāng)我們?cè)趯?shí)際中需要在函數(shù)中使用的時(shí)候,只能通過(guò)引用來(lái)傳遞他們。IO類型的三個(gè)獨(dú)立的頭文件是:iostream、fstream 、 sstream
3、構(gòu)造函數(shù),任務(wù):初始化類對(duì)象的數(shù)據(jù)成員,無(wú)論何時(shí)只要類的對(duì)象被創(chuàng)建,就會(huì)執(zhí)行構(gòu)造函數(shù);類可以包含多個(gè)構(gòu)造函數(shù),和其他重載函數(shù)差不多,不同的構(gòu)造函數(shù)之間必須在參數(shù)數(shù)量或參數(shù)類型上有所區(qū)別。
4、使用class和struct定義類唯一的區(qū)別就是默認(rèn)的訪問(wèn)權(quán)限不一樣,struct的默認(rèn)是public,而class的默認(rèn)權(quán)限是PRivate.
5、友元聲明只能出現(xiàn)在類定義的內(nèi)部,但是在類內(nèi)出現(xiàn)的具體位置不限,
6、在C++類內(nèi),用來(lái)定義類型的成員必須先定義后使用,這一點(diǎn)與普通的成員有所區(qū)別。
7、用mutable 關(guān)鍵字來(lái)修飾一個(gè)變量,一個(gè)可變數(shù)據(jù)成員永遠(yuǎn)不會(huì)是const,即使它是const函數(shù)對(duì)象的成員,
8、基于const的重載。通過(guò)區(qū)分成員函數(shù)是否是const的,我們可以對(duì)其進(jìn)行重載。
9、友元不具有傳遞性。
10 、struct X
{
friend void f() {/*友元函數(shù)可以定義在類的內(nèi)部*/}
X() {f();}//錯(cuò)誤:f還沒(méi)有被聲明
void g();
void h();
};
void X::g() {return f();}//錯(cuò)誤:Ff還沒(méi)有被聲明
void f();//聲明定義在X中的函數(shù)
void X::h() {return f();}//正確,現(xiàn)在f 已經(jīng)聲明在作用域中了
Note:理解友元的聲明的作用是影響訪問(wèn)權(quán)限的;
11、構(gòu)造函數(shù)初始化的順序:成員的初始化的順序與它們?cè)陬惖亩x中的出現(xiàn)順序一致。即在類中先定義的成員先被初始化,而并不是其在構(gòu)造函數(shù)的參數(shù)列表中的出現(xiàn)順序。
12、類的靜態(tài)成員存在于任何對(duì)象之外,對(duì)象中不包含任何與靜態(tài)數(shù)據(jù)成員有關(guān)的數(shù)據(jù);靜態(tài)成員函數(shù)也不與任何對(duì)象綁定在一起,它們不包含this指針。
13、靜態(tài)數(shù)據(jù)成員不是由類的構(gòu)造函數(shù)初始化的,不能在類的內(nèi)部初始化靜態(tài)成員,相反的,必須在類的外部定義和初始化每個(gè)靜態(tài)成員,static關(guān)鍵字只出現(xiàn)在類內(nèi)部的聲明語(yǔ)句中。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注