题目要求:
用C++设计一个不能被继承的类。
参考资料:剑指offer第48题。
题目分析:
方法1:把构造函数设为私有函数,定义共有的静态函数来创建和释放类的实例;
方法2:利用虚拟继承和友元;
代码实现:
//把构造函数设为私有函数,定义共有的静态函数来创建和释放类的实例
class Temp
{
public:
static Temp *GetInstance()
{
return new Temp();
}
static void DeleteInstance(Temp *pInstance)
{
delete pInstance;
}
private:
Temp();
~Temp();
};
//利用虚拟继承和友元,对外使用Temp1
tempLate <class T>
class Temp
{
friend T;
private:
Temp(){}
~temp(){}
};
class Temp1:virtual public Temp<Temp1>
{
public:
Temp1(){}
~Temp1(){}
};