您的位置:首页 > 其它

(科大讯飞)实现一个类:不能被继承,而且最多只能有三个实例

2012-10-24 11:20 393 查看
当时看到这个题目就想到了单例模式,可是不知道在哪里判断次数,刚开始打算放到构造函数里抛出异常的,现在想想还是没有真正理解单例模式。

class A
{
public:
//this function is static !
static A* instance(void)
{
if (n<3)	{ return new A; }
else return (A*)0;
}
//this func is nont static !
void print(void) const { cout<<n<<endl;}
private:
A(){ ++n;}
static int n;
};
int A::n=0;//do not forget to init n

int main( void )
{

A* p=NULL;
for (int i=0;i<5;i++)
{
p=A::instance();
if (p!=NULL)
{
p->print();
}
}
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: