只在堆上对象和栈上对象
来源:互联网 发布:ubuntu怎么安装deb 编辑:程序博客网 时间:2024/05/14 20:01
/*如何创建一个类只能在堆上new出来?1、使用重载 operator new()为public和构造函数为private可以吗?ans:重载的aperator new()只能为static类型,因此语法无法调用private的构造函数,而C++语法有没有static friend类型的成员函数,因为既然是frined就不可能为static;2、看来只有private构造函数,static一个成员函数用于new一个对象了。如何创建一个只能存在栈上的对象呢?ans:private化operator new()而public化构造函数*/#include <iostream>using namespace std;class OnlyHeapObject{public: static OnlyHeapObject* create(int i){ return new OnlyHeapObject(i); } void destory(){ delete this; }protected: OnlyHeapObject(int i):m_i(i){} ~OnlyHeapObject(){} int m_i;};class OnlyStackObject{public: OnlyStackObject(int i) :m_i(i){} ~OnlyStackObject(){}private: static void* operator new(size_t size); static void operator delete (void* raw, size_t size); int m_i; };int main(){ OnlyHeapObject* t = OnlyHeapObject::create(9); t->destory(); OnlyStackObject s(0); //OnlyStackObject* s2 = new OnlyStackObject(0); return 0;}
阅读全文
0 0
- 只在堆上对象和栈上对象
- 只在栈上和只在堆上申请对象
- C++只在堆上与栈上创建对象
- 对象只在堆上创建
- c++ 只在堆上创建对象
- 只在堆、栈上生成对象的类
- 如何只在堆或者栈上分配类对象
- 如何只在堆或者栈上分配类对象
- C++只在栈或堆上实例化对象
- 让一个类只在堆/栈上创建对象
- 限制一个类对象只在堆上分配或者只在栈上分配
- 如何限制一个类对象只在堆上分配或者只在栈上分配?
- 如何限制一个类对象只在堆上分配或者只在栈上分配?
- 如何限制一个类对象只在堆上分配或者只在栈上分配?
- 只在堆上或只在栈上定义对象
- 如何限制一个类对象只在堆上分配或者只在栈上分配?
- 如何限制一个类对象只在堆上分配或者只在栈上分配?
- 限制一个类对象只在堆上分配或者只在栈上分配
- oracle的存储过程和存储函数深入分析和案例
- 分布式系统之-我的书单
- RecyclerView如何判断是否滚动到底部
- 有没有大神能够逐行解释一下代码?Delphi
- c++之关键字static
- 只在堆上对象和栈上对象
- JAVA中线程同步的方法(7种)汇总
- python打赢乘法表
- Guessing the Dice Roll HDU
- ubuntu下mysql的简单操作
- PV操作解决吃水果问题(Java实现)
- 求数组中元素第一次出现的索引值
- 学习testNG之报错-A JNI error has occurred
- 模板方法模式