用C 寫乙個不能被繼承的類

2021-07-13 11:42:32 字數 478 閱讀 6427

//用c++設計乙個不能被繼承的類

//方法1:把構造/析構函式設為私有,但這樣就不能例項化了。

//於是定義公有的靜態函式來建立和釋放類的例項。

class sealedclass0

~sealedclass0() {}

public:

static sealedclass0* getinstance()

static void deleteinstance(sealedclass0* pinstance) };

//方法2:把利用虛擬繼承

template class makesealed

~makesealed() {}

};class sealedclass1 :virtual public makesealed

~sealedclass1() {}

};

對類的理解要很深刻啊。。

用C 設計乙個不能被繼承的類

如果將乙個類設計成不能被繼承來的類,只要把類的建構函式設定為私有的,即可解決問題。因為那樣的話,子類就沒有辦法訪問基類的建構函式,從而就阻止了進行子類構造物件的任務實現,也就達到了不可繼承的目的。因為構造方法為私有,所以外部也不能呼叫建構函式生成例項,我們需要提供特殊的方法建立例項。具體做法是定義靜...

用C 設計乙個不能被繼承的類

一,把建構函式設為私有函式 在c 中子類的建構函式會自動呼叫父類的建構函式,子類的析構函式會自動呼叫父類的析構函式。要想定義乙個不能被繼承的類,我們只要把它的建構函式和析構函式都定義為私有函式。那麼當乙個類試圖從他那繼承的時候,必然會由於呼叫建構函式 析構函式而導致編譯錯誤。這個類的建構函式是私有的...

用C 設計乙個不能被繼承的類

在 c 中,子類的建構函式會自己主動呼叫父類的建構函式。相同,子類的析構函式也會自己主動呼叫父類的析構函式。要想乙個類不能被繼承,我們僅僅要把它的建構函式和析構函式都定義為私有函式。那麼當乙個類試圖從它那繼承的時候,必定會因為試圖呼叫建構函式 析構函式而導致編譯錯誤。template class a...