內容:無意中翻到了之前大一讀的清華大學出版社的《c++程式設計》,以前剛讀的時候一直有一句不理解,現在才回想起來c++單例就用的這個知識點。
在對類的靜態私有資料成員初始化的同時,還可以引用類的其它私有成員
單例中的應用:
#include
using namespace std;
class singleton
private:
singleton()
//防拷貝
singleton
(const singleton&
)= delete;
singleton& operator=
(const singleton&
)= delete;
private:
static singleton instance;
//單例物件};
singleton singleton:
:instance;
//靜態物件的類外初始化
intmain()
程式成功執行:
疑惑處:
為什麼靜態物件初始化的時候使用了建構函式,但是建構函式是私有的,不可以類外使用,為啥可以成功?
原因:
在對類的靜態私有資料成員初始化的同時,還可以引用類的其它私有成員(包括資料成員和函式成員)
c 中的私有建構函式
一般建構函式不是私有或者保護成員,但建構函式可以使私有成員函式,在一些特殊的場合,會把建構函式定義為私有或者保護成員。c 類的建構函式一般不應該是私有函式,因為私有函式不能被其他類或者全域性函式所使用。而建立c 例項需要呼叫建構函式。所以如果建構函式是私有函式的話,除了類自己的方法之外,其他類不能構...
C 物件中的私有成員變數也可以被訪問
c 物件中的私有 保護 成員變數也可以從物件外面訪問。下面的 會讓你大吃一驚 include classtestclass intmain int argc,char argv 其執行結果為 為什麼會這樣?原因很簡單 在c 中,private,protected只是程式邏輯上的一種保護,即如果破壞了...
C 建構函式和析構函式是否可以繼承?
先看乙個例子 include class a 建構函式不能為 virtual a int aa a aa virtual a public int a class b public a b int bb b bb b int aa,int bb a aa b bb b public int b cl...