您的位置:首页 > Web前端

剑指offer 48-不能被继承的类

2015-06-27 09:41 295 查看
//方法1 把函数构造设为私有函数
class sealedClass
{
public:
static sealedClass* GetInstance()
{
return new sealedClass();
}
static void deleteInstance(sealedClass* pInstance)
{
delete pInstance;
}
private:
sealedClass(){}
~sealedClass(){}
};

//利用虚拟继承
template<typename T> class MakeSealed
{
friend T;
private:
MakeSealed(){}
~MakeSealed(){}
};
class SealedClass2 : virtual public MakeSealed<SealedClass2>
{
public:
SealedClass2(){}
~SealedClass2(){}
};
//实例化编译错误
//class Derived : public SealedClass2
//{
//};
int main()
{
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: