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