Effective C++回顾(5)

原创 2006年05月24日 22:35:00

 

条款9:避免遮掩了new的正规形式

那么new有多少种正规形式,对于一个完整的new它应该有下面四种类型

void * operator new (size_t size)
{ return ::operator new (size); }
void operator delete(void * p)
{ ::operator delete (p); }

void * operator new[](size_t size)
{ return ::operator new (size * kkk); }
void operator delete[](void *p)
{ ::operator delete (p); }

void * operator new(size_t size, void *p)
{ return p; }
void operator delete(void *p, void *p2)
{ ::operator delete(p); }

void * operator new[](size_t size, void *p)
{ return ::operator new (size * kkk); }
void operator delete[](void *p, void *p2)
{ ::operator delete (p); }

尤其是对于[]的操作,要重点注意。

下面是new所对应的调用方法。

void ITLionWoo();

new T;

new T[10]

new (ITLionWoo)T;

new (ITLionWoo)T[10];

所以对于类的设计者来说,如果要重载new操作,最好是实现所有的new操作,以防万一。

相关文章推荐

effective c++条款5 了解编译器默认编写那些函数

一个空类里面都默认包含那些函数 . 构造函数 · 拷贝构造函数 . 析构函数 . 赋值操作符重载 . 取地址运算符重载 . const取地址运算符 什么条件下编译器不会默认合成赋值操作符重...
  • gjggj
  • gjggj
  • 2017年05月06日 10:20
  • 175

Effective C++ (5) 几个关于数组的问题

1.指针和数组容易产生不可预料的错误。其中一部分是概念上的问题:指针用于低级操作,容易产生与繁琐细节相关的(bookkeeping)错误。其他错误则源于使用指针的语法规则,特别是声明指针的语法。 ...

effective c++ 笔记 (5-8)

//---------------------------15/03/26---------------------------- //#5    了解c++默默编写并调用哪些函数 { ...
  • boydfd
  • boydfd
  • 2015年03月27日 11:53
  • 446

《Effective C++》构造/析构/赋值 函数:条款5-条款9

每一个类中都有构造函数、析构函数、赋值操作符。这几个函数是一个类最根本的函数,它控制着创建对象并初始化、对象消亡时的清理以及摆脱旧值赋新值。这样函数如果有问题,那么影响极为严重。 条款5-条款9分别讲...

Effective c++学习笔记——条款5:了解C++默默编写并调用哪些函数

Know what functions C++ silently and calls        今天继续学习一个条款,看到了本条款,让我更加了解了C++的一些内部运行机理,思考了一番,觉得C++...

Effective C++ --5 实现

上一部分 Effective C++ --4 设计与声明   26、尽可能延后变量定义式的出现时间  (1)这样可以增加程序的清晰度并改善程序效率。如定义变量后还未使用遇到return或者抛出...

Effective C++(条款5-12)

1、编译器可以为类暗自创建默认构造函数、复制构造函数、赋值运算符重载函数以及析构函数,所有这些函数都是public且inline。当这些函数被需要(被调用)而用户没有定义这些函数时,它们才被编译器创建...
  • nawuyao
  • nawuyao
  • 2015年12月24日 14:32
  • 174

Effective C++ 读书笔记之Part5.Implementations

26. Postpone variable definitions as long as possible. 总结: 尽可能延后变量定义式的出现。这样做可增加程序的清晰度并改善程序效率。 ...

<<Effective C++>>笔记5

Chapter 5: Implementation Item 26:Postpone variable definition aslong as possible.        Postpone...

Effective C++笔记(4)—条款5/6分析

Effective C++ 条款5,6分析
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Effective C++回顾(5)
举报原因:
原因补充:

(最多只允许输入30个字)