一、思路
在C++的继承里面我们知道,子类的构造函数会调用父类的构造函数,子类的析构函数会调用父类的析构函数,因此我们便想办法禁止子类调用父类的构造函数和析构函数即可,因此提出了如下两种方法。
二、方法
①构造函数与析构函数设置为私有
我们把父类的构造函数和析构函数定义为私有成员,此时子类便不可调用父类的构造函数和析构函数,因此便达成了防止一个类被继承的目的,但是此时又出现一个问题,我们如何区构造一个类对象呢。
我们可以写一个共有的静态的函数来返回一个对象,这种方式和只能在堆上建立对象是一样的。
class Myclass
{
public:
static Myclass* NewNode()
{
return new Myclass();
}
static void DeleteNode(Myclass* _Myclass)
{
delete _Myclass;
}
private:
Myclass()
{}
~Myclass()
{}
};
c