類的作用域
類的定義分為兩步
- 編譯成員的聲明
- 知道類全部可見(jiàn)后才編譯函數(shù)
在成員函數(shù)中進(jìn)行名字查找的過(guò)程:
- 在函數(shù)內(nèi)部查找名字的聲明
- 第一步?jīng)]有找到,則在類中繼續(xù)查找
- 如果類內(nèi)也沒(méi)有,則在成員函數(shù)定義之前的聲明中進(jìn)行查找
如果外層對(duì)象被隱藏,可以使用域運(yùn)算符進(jìn)行訪問(wèn)即符號(hào)::
構(gòu)造函數(shù)再探
使用構(gòu)造函數(shù)對(duì)成員進(jìn)行初始化
成員初始化順序最好與參數(shù)列表順序保持一致,且初始化成員時(shí)應(yīng)避免有依賴關(guān)系。
explicit 關(guān)鍵字用于抑制構(gòu)造函數(shù)定義的隱式轉(zhuǎn)換
聚合類
當(dāng)一個(gè)類滿足下面條件就稱為聚合類:所有成員為public,沒(méi)有定義構(gòu)造函數(shù),沒(méi)有類內(nèi)初始值,沒(méi)有基類也沒(méi)有virtual函數(shù)
類的靜態(tài)成員
通過(guò)static關(guān)鍵字實(shí)現(xiàn)
定義
class Account{
public:
static double rate(){return 0};
}
- 靜態(tài)類成員,被所有類生成的對(duì)象公有
使用靜態(tài)成員
double r;
r= Account::rate();