59 不能被继承的类

来源:互联网 发布:淘宝男生裤子 编辑:程序博客网 时间:2024/05/22 22:37
59.不能被继承的类。

题目:用 C++设计一个不能被继承的类。

/*59.不能被继承的类。题目:用 C++设计一个不能被继承的类。1.不能被继承?按照继承的理论知识分析,我们只要把类的构造函数设置为私有的,即可。  子类就没有办法访问基类的构造函数,从而就阻止了进行子类构造对象的任务实现,也就达到了不可继承的目的我们怎样才能得到该类的实例呢?我们可以通过定义静态来创建和释放类的实例。   但是这个类我们在其它地方也无法使用。 */ class FinalClass1 { public: static FinalClass1* GetInstance() { return new FinalClass1; }  static void DeleteInstance( FinalClass1* pInstance) { delete pInstance; pInstance = 0; }  private :   FinalClass1() {}   ~FinalClass1() {} }; /*参考:http://blog.csdn.net/yushuai007008/article/details/7438362 虚继承的一个特征就是虚基类的构造函数由最终子类负责构造!通过限制构造函数,我们就达到了限制继承的目的*/ #include"stdafx.h"#include<iostream>using namespace std;template<class T>   //应用模板class CFinalClassMixin{friend T;private:CFinalClassMixin(){}    ~CFinalClassMixin(){}};class CParent:virtual public CFinalClassMixin<CParent>  //虚继承{public:  CParent(){}  ~CParent(){}};class CChild:public CParent{}; //子类继承父类int main(int argc, char* argv[]){CParent a; // 可以构造CChild b; //不能构造return 0;}


0 0
原创粉丝点击