条款10:如果写了operator new就要同时写operator delete
来源:互联网 发布:linux查看线程cpu 编辑:程序博客网 时间:2024/05/22 06:24
为什么要自己写operator new和operator delete,通常是为了效率。
class airplanerep
{
public:
...
private:
airplanerep* rep;
};
一个airplanerep对象并不大,它只包含一个指针,但当调用operator new来分配一个airplane对象时,得到的内存可能要比存储这个指针所需要的要多,之所以会产生这种看起来很奇怪的行为,在于operator new和operator delete直接需要互相传递信息。operator new必须告诉operator delete当初分配的内存的大小。所以使用缺省的operator new分配的内存如下:
airplanerep *pa = new airplanerep;
不会得到 pa---->airplanerep对象的内存
而是得到 pa---->内存块大小数据+airplanerep对象的内存
- 条款10: 如果写了operator new就要同时写operator delete
- 条款10:如果写了operator new就要同时写operator delete
- 如果写了operator new就要同时写operator delete
- 条款10: 如果写了operator new就要同时写operator delete (转自effective c++ second edition)
- effective C++笔记之条款9、10:避免隐藏标准形式的new、如果写了operator new 就要同时写operator delete
- 如果写了operator new就要同时写operator delete,重写是为了效率
- 条款8: 写operator new和operator delete时要遵循常规
- effective C++笔记之条款8: 写operator new和 operator delete 时要遵循常规
- 条款8:写operator new和operator delete时要遵循常规
- Effective C++:条款8: 写operator new和operator delete时要遵循常规
- 条款8:写operator new和operator delete时要遵循常规
- 写operator new和operator delete时要遵循常规
- 写operator new和operator delete的规则
- Item 52:写了placement new就要写placement delete
- Effective C++学习笔记:写operator new和operator delete时要遵循常规
- new operator和delete operator
- operator new 和 operator delete
- operator new 和 operator delete
- 条款7:预先准备好内存不够的情况
- 条款8:写operator new和operator delete时要遵循常规
- 安卓开发-加载图片
- Android 仿网易新闻v3.5:上下滑动的引导页
- 条款9:避免隐藏标准形式的new
- 条款10:如果写了operator new就要同时写operator delete
- linux_shell脚本
- 条款11:为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符 (第三章 构造函数,析构函数和赋值操作符)
- 修改linux文件权限命令:chmod
- 条款12:尽量使用初始化而不要在构造函数里赋值
- C#中char[]与string之间的转换
- 条款13:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 条款14:确定基类有虚析构函数
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针