c++如何防止一个类被其他类继承?
生活随笔
收集整理的這篇文章主要介紹了
c++如何防止一个类被其他类继承?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如何在防止一個類被其他的類繼承呢?
如果是僅僅為了達到這個目的可以直接把這個類的構造函數設置成私有的,這樣就杜絕了其他類的繼承。也相當于毀掉了這個類(無法再創造出自己的對象)。
那么怎么樣既要保證這個類的完整性,又防止其他類的繼承呢?
這就要借助友元來實現,因為友元是不可以被繼承的。如果一個類的構造函數要借助它的友元類,那么繼承了這個類的類就無法構造自己的對象。從而杜絕了被繼承
#include <iostream> using namespace std; class C;class BASE { private:BASE() {}friend class C; //設class C為class BASE的友元 };class C : public virtual BASE {};class D : public C {};int main() {C c;//D d; 不可以實例化對象 }為什么class C要虛擬繼承class BASE 而不是直接繼承呢?
參考資料?
- c++如何防止一個類被其他類繼承
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c++如何防止一个类被其他类继承?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VSCode安装插件慢,怎么解决(20M
- 下一篇: lol必出鞋子吗?