剑指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;
}
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;
}
相关文章推荐
- CSS兼容的几个点
- 解决fedora更新后没有无线连接问题,及无线网卡的手动安装全过程
- 生成任意长度的随机数 JS
- JS获取屏幕宽度的说明
- CSS3动画-动画
- 数组去重 JS
- HTML5游戏实战《银行卡牌连连看看游戏》
- devexpress实现单元格根据条件显示不同的样式(颜色、字体、对齐方式,大小等)
- CSS3动画-过渡
- Silverlight Telerik控件学习:主题Theme切换html教程
- fedora21升级到fedora22
- web页面div浮于图片上的问题
- js——DOM操作(一)
- CSS3动画-2D、3D转换
- css3快速复习
- css--用户体验笔记及兼容记录
- javascript-函数及兼容
- javascript--study
- 【安卓笔记】高速的发展设置界面-----PreferenceActivity
- js操作单选框radio