用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;
}