定义一个类不能被继承,且只能被实例化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返回实例,而不是用普通的定义对象的方式实例化。
相关文章推荐
- 笔试题目:定义一个类不能被继承,且只能被实例化3次 .
- 笔试题目:定义一个类不能被继承,且只能被实例化3次
- 【中科大洋笔试题】定义一个不能被继承的类,并且只能实例化3个对象。
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个类,该类不能被继承,且只能实例化3次
- 用c++设计一个类,这个类只能被实例化3次,且不能被继承
- 定义一个只能在堆上生成对象的类&&定义一个只能在栈上生成对象的类&&定义一个类不能被继承
- 使用C++设计一个类,该类最多能被实例化3次且不能被继承
- 菜鸟学习abstract【一个类可以被继承但不能实例化,子类不需要重新定义属性】
- 【转】C++怎么设计只能在堆或者栈分配空间的类以及定义一个不能被继承的类
- 写一个类,要求:该类不能被继承且只能被实例化三次(转)
- C++创建一个类(1.只能在堆上创建; 2 只能在栈上创建; 3 不能被继承(堆上和栈上都可以创建))
- 定义一个不能被继承的类
- 定义一个二维数组,如何取得最中间的哪个数。不能用[],只能用*
- (科大讯飞)实现一个类:不能被继承,而且最多只能有三个实例
- 实现一个类:不能被继承,而且最多只能有三个实例
- 用c++编写一个不能被继承的类(但是可以在类外部定义该类的对象)
- -设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象。
- 设计一个类不能被继承;只能在堆上创建对象;只能在栈上创建对象
- 1.设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象