您的位置:首页 > 编程语言 > C语言/C++

定义一个类不能被继承,且只能被实例化3次

2013-04-15 20:05 393 查看
看到这个题目,我的想法是:不能被继承,那也就是说构造函数和析构函数不能被调用,就只能把他们设置为private了,但是我没想清楚的是,把构造函数和析构函数设置为private,怎么能再实例化对象,并且只有三次。网上搜索了一下答案,原来这个实例化三次,不是在外部实例化的,而是由该类的内部函数控制的。具体如下:

class FinalClass1
{
public static int count ;//实例化次数
public :
static FinalClass1* GetInstance()
{
if(count<=0)
return NULL;
count--;
return new FinalClass1;
}
static void DeleteInstance( FinalClass1* pInstance)
{
delete pInstance;
pInstance = 0;
}

private :
FinalClass1() {}
~FinalClass1() {}
};

int FinalClass1::count = 3;
用GetInstance返回实例,而不是用普通的定义对象的方式实例化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ class
相关文章推荐