要设计一个类不能被继承有很多种方法,这里实现一种非常简单且常见的方法。我们知道类的私有成员不能在类域外被调用,那么如果将类的构造函数和析构函数都放入类的私有成员中,在子类调用基类的构造函数和析构函数时就会发生编译错误,这样的基类就是不能被继承的类。
当然,这个类也不能直接实例化,而是通过特殊的方法来得到这个类的实例,我们来看这个不能被继承的类:
class SealedClass
{
private:
SealedClass(int data)
: _data(data)
{}
~SealedClass()
{}
public:
static SealedClass* GetSealed(int data)
{
SealedClass *psc = new SealedClass(data);
return psc;
}
static SealedClass* DelSealed(SealedClass* ps)
{