1. 程式人生 > >如何讓一個類不能被繼承

如何讓一個類不能被繼承

要想讓一個類不能被繼承,已知方法有兩種。一是,將類的建構函式定義為帶private屬性。二是,將該類虛繼承一個父類,但是該父類的建構函式是帶private屬性的。
關於第二個方法可行的依據是:
1)派生類不能呼叫父類private屬性的建構函式。
2)建立一個物件時,如果這個物件中含有從虛基類繼承來的成員,則虛基類的成員是由最遠派生類的建構函式通過呼叫虛基類的建構函式進行初始化的。
3)以上兩點相互矛盾,使得該類無法被繼承。

如何例項化建構函式是private屬性的類?
只要有一個函式能夠訪問private成員就行了。這個就有兩種方法。
一是,在類中定義一個static 成員函式。
二是,在類中定義一個friend成員。