算法题目---不能被继承的类

来源:互联网 发布:一对一辅导软件免费 编辑:程序博客网 时间:2024/06/05 21:59

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


class SealedClass1

{
    public:
        static SealedClass1* GetInstance()
        {
            return new SealedClass1();
        }
        static void DeleteInstance(SealedClass1* pInstance)
        {
            delete pInstance;
        }
    private:
        SealedClass1(){cout<<"SealedClass1 constructor"<<endl;}
        ~SealedClass1(){cout<<"SealedClass1 destroy"<<endl;}
};

/*
class Try1:public SealedClass1
{
    public:
        Try1(){}
        ~Try1(){}
};
*/

void test1()
{
    SealedClass1* pb = SealedClass1::GetInstance();
}

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

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

/*
class Try2:public SealedClass2
{
    public:
        Try2(){}
        ~Try2(){}
};
*/

void test2()
{
        SealedClass2 *pb = new SealedClass2();    
}

int main()
{
    return 0;
}