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

解法一:把构造函数设为私有函数。

class SealedClass1
{
public:
    static SealedClass1* GetInstance()
    {
        return new SealedClass1();
    }
    static void DeleteInstance(SealedClass1* pInstance)
    {
        delete pInstance;
    }
    
private:
    SealedClass1(){}
    ~SealedClass1(){}
};

解法二:利用虚拟继承

template  class MakeSealed
{
    friend T;
private:
    MakeSealed(){}
    ~MakeSealed(){}
};

class SealedClass2:virtual public MakeSealed
{
public:
    SealedClass2(){}
    ~SealedClass2(){}
};