一,把构造函数设为私有函数
在C++中子类的构造函数会自动调用父类的构造函数,子类的析构函数会自动调用父类的析构函数。要想定义一个不能被继承的类,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从他那继承的时候,必然会由于调用构造函数、析构函数而导致编译错误。
这个类的构造函数是私有的,那么我们应当如何才能获得到该类型的实例呢?我们可以通过定义公有的静态函数来创建和释放类的实例。下面是具体的代码:
class MyClass{
private:
MyClass(){}
~MyClass(){}
public:
static MyClass *getInstance(){
return new MyClass;
}
static void deleteInstance(MyClass *p){
delete p;
}
};