读书人

(科大讯飞)兑现一个类:不能被继承而

发布时间: 2012-11-10 10:48:50 作者: rapoo

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

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

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;}
(科大讯飞)兑现一个类:不能被继承,而且最多只能有三个实例

读书人网 >编程

热点推荐