C++将类的构造函数、析构函数声明为private或者protected的用途
生活随笔
收集整理的這篇文章主要介紹了
C++将类的构造函数、析构函数声明为private或者protected的用途
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果將構造函數、析構函數聲明為private或者protected,表示不能從類的外部正常調用構造和析構函數了。
這種用法的通常使用的場景如下:
1、如果不想讓外面的用戶直接構造一個類A的對象,而希望用戶只能構造這個類A的子類,那就把這個類A的構造函數、析構函數聲明為protected,而將類A子類的構造函數和析構函數聲明為public。例如:
? ?
class A { protected: A(){}public: .... }; calss B : public A { public: B(){}.... };A a; // error B b; // ok2、如果將構造函數、析構函數聲明為private,那只能在這個類的成員內構造這個類的對象了。
class A{ private:A(){ }~A(){ }public:void Instance()//類A的內部的一個函數{A a;}
static A& GetInstance()
{
static A a;
return a;
}
};
轉載于:https://www.cnblogs.com/guagua2016/p/5958270.html
總結
以上是生活随笔為你收集整理的C++将类的构造函数、析构函数声明为private或者protected的用途的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d坦克没有网络
- 下一篇: 红箭10反坦克导弹可以打轰炸机吗?