用C++设计一个不能被继承的类

来源:互联网 发布:爱国者诚信联盟知乎 编辑:程序博客网 时间:2024/05/18 01:12

一,把构造函数设为私有函数

       在C++中子类的构造函数会自动调用父类的构造函数,子类的析构函数会自动调用父类的析构函数。要想定义一个不能被继承的类,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从他那继承的时候,必然会由于调用构造函数、析构函数而导致编译错误。

       这个类的构造函数是私有的,那么我们应当如何才能获得到该类型的实例呢?我们可以通过定义公有的静态函数来创建和释放类的实例。下面是具体的代码:

class MyClass{private:    MyClass(){}    ~MyClass(){}public:    static MyClass *getInstance(){        return new MyClass;    }    static void deleteInstance(MyClass *p){        delete p;    }};

原创粉丝点击