1. 首页
  2. 编程语言
  3. C
  4. C++ new、delete(new[]、delete[])操作符重载需要注意的问题

C++ new、delete(new[]、delete[])操作符重载需要注意的问题

上传者: 2022-07-12 00:07:59上传 PDF文件 81.92 KB 热度 14次

很多人完全没有意识到 operator new、operator delete、operator new[]、operator delete[] 成员函数会被继承。有些时候,我们只想为指定的类设置自定义的 operator new 成员函数,而不希望影响到子类的工作。《Effective C++ Third Edition》提供了如下的方案:这样处理的一个前提是:认为子类的大小一定大于父类。对于 operator new[] 来说,我们很难通过上面的方式检查到底是父类还是子类调用了操作符。通过 operator new[] 操作符的参数,我们无法得知分配的元素的个数,无法得知分配的每个元素的大小。这不是个很简单的事。但是同样的,对于 delete[] 操作符工作就不正常了:

下载地址
用户评论