设计一个只能在堆上或栈上实例化的类
2012-04-02 21:17
253 查看
设计一个只能在堆内存上实例化的类和一个只能在栈内存上实例化的类:
//只能在堆内存上实例化的类 class CHeapOnly { public: CHeapOnly() { cout << "Constructor() of CHeapOnly!" << endl; } void Destroy() const { delete this; } private: ~CHeapOnly() { cout << "Destructor of CHeapOnly!" << endl; } }; //只能在栈内存上实例化的类,就是不能使用new来构造类,把operator new私有化 class CStackOnly { public: CStackOnly() { cout << "Constructor of CStackOnly!" << endl; } ~CStackOnly() { cout << "Destrucotr of CStackOnly!" << endl; } private: void* operator new(size_t size) { } void operator delete(void * ptr) { } }; int main() { //use of CHeapOnly CHeapOnly* pHeap = new CHeapOnly; pHeap->Destroy(); //err use of CHeapOnly //CHeapOnly objHeap; //use of CStackOnly CStackOnly objStack; //error use of CStackOnly //CStackOnly* pStack = new CStackOnly; return 0; }
相关文章推荐
- 设计一个只能在堆上或栈上实例化的类
- 设计一个只能在堆上或栈上实例化的类
- 设计一个只能在堆上或栈上实例化的类
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个只能在堆上或栈上实例化的类
- 设计一个只能在堆上或栈上实例化的类
- 设计一个只能在堆上或栈上实例化的类
- 用c++设计一个类,这个类只能被实例化3次,且不能被继承
- 设计一个只能在堆内存上实例化的类和一个只能在栈内存上实例化的类
- 设计一个类,该类不能被继承,且只能实例化3次
- 设计一个类不能被继承;只能在堆上创建对象;只能在栈上创建对象
- 牛客网 小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物
- 剑指OFFER(java)-设计一个只能创建一个唯一实例的类——单例模式
- 只能生成一个对象的类(经典设计模式之一)
- 笔试题目:定义一个类不能被继承,且只能被实例化3次 .
- C#--第10周实验--任务2--设计一个窗体--文本框只能输入0至9这十种数字,且长度最多8个
- 用C#实现一个类,要求该类只能被实例化一次
- 1.设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象
- 根据类(不能被继承、只能在栈上/堆上创建对象)的特点设计一个类
- 设计一个类,我们只能生成该类的一个实例。