1. 靜態成員
靜態成員屬於類所有,不屬於對象。但為所有對象所共享。
因為靜態成員不屬於對象所有,所以在對象初始化的時候,不會為靜態成員分配內存空間。
故在類中,靜態成員只是做了一個引用性的聲明,必須在類外進行正式的聲明。
聲明格式: 類型 類名::靜態成員名; // 也可以賦初始值,對於靜態成員,系統會自動賦予初始值。int A::id;
訪問: A::id
2. 靜態方法,同樣為類所有,為對象所共享,類可以直接調用,而不必聲明對象來調用
調用格式: 類名::方法
注意,在靜態方法中,可以訪問靜態成員和靜態成員方法。但是不能訪問非靜態成員變量,
因為此時對象還沒有生成,何來的成員變量?
如果要在靜態方法中使用成員變量,可以使用別名。C++為解決效率的需要,提出了一個友元的概念,
只要把某個類外函數聲明為該類的友元,就可以直接訪問類中的任何成員(public,protect,private)
1)將普通函數聲明為類的友元
2)將某個類的成員函數聲明為本類的友元函數
3)將某個類聲明為本類的友元類
友元都聲明在類中,只是說明友元函數有權訪問類的所有成員,但並不表明友元函數和友元類屬於該類的成員。
友元聲明不受權限的限制,聲明在哪一行都行。
友元用friend修飾,一般使用對象的別名作為參數
4. 類的嵌套
要有初始化列表,初始化順序跟初始化列表無關,只於對象聲明的順序有關。
如果沒有寫,則調用默認的構造函數。
如:}