首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-11-10 
(科大讯飞)实现一个类:不能被继承,而且最多只能有三个实例当时看到这个题目就想到了单例模式,可是不知道在

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

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

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 nint main( void ) { A* p=NULL;for (int i=0;i<5;i++){p=A::instance();if (p!=NULL){p->print();}}return 0;}
(科大讯飞)兑现一个类:不能被继承,而且最多只能有三个实例

热点排行