Effective C++ 2nd Edition (2)

原创 2011年01月10日 16:38:00

五. 使用相同形式的new和delete

 

string *pstr = new string[];

delete [] pstr;  //删除一个对象数组

 ------------------------------------

string *pstr = new string;

delete pstr;  //删除单一对象

 

反正需要匹配的,要不内存管理方面就出错咯

 

六. 记得在destructor中以delete对付pointer members

 

按侯高手说法, 就按顺序干这些事情比较安全:

 

1. constructor中指针初始化

2. assignment运算符中将指针原有的内存删除,重新配置一块(见17款)

3. destructor中删除这个指针 delete它

 

七.  为内存不足的状况预做准备

 

这些东东好罗嗦。。。。

 

set_new_handler用法什么玩意的

 

内存不足啊,写个病毒

 

 

八. 撰写operator new 和operator delete时应遵行的公约

 

1. 写自己的operator new时,函数的行为与缺省的new保持一致性.
(1)内存不足时,会调用一个new-handler.
(2)应对new(0)的情况.
(3)避免遮盖"正常"形式的new.

2,C++标准要求:即使用户要求一个0 bytes内存,operator new也应该传回一个合法指针.
注:每个class都有非零大小.

 

3. 如果配置不成功,operator new会一再尝试配置内存,调用错误处理函数.
只有当错误处理函数的指针是null时,operator new才会抛出一个exception.
一个默认operator new的伪代码:

 

 

member operator delete的伪码:


很罗嗦啊。。。

4. non-member operator delete的伪码:


Effective C++ 2nd Edition (4)

十一. 如果class内动态配置有内存,请为此class声明一个copy constructor和一个assignment运算符简陋的string classclass String { publ...

Effective Java 2nd Edition 英文版.pdf

  • 2017年10月30日 13:11
  • 1.06MB
  • 下载

Effective C++----3rd Edition, Item 2:用consts,enums和inlines取代#define

Item 2: 用 consts, enums 和 inlines 取代 #defines 作者:Scott Meyers 译者:fatalerror99 (iTePub's Nirvana) ...

Effective.Java.2nd.Edition pdf

  • 2014年12月14日 18:20
  • 2.03MB
  • 下载

AW.More.Effective.Csharp.2nd.Edition.2017

  • 2017年06月22日 21:36
  • 1.49MB
  • 下载

以下是《Learn Python The Hard Way, 2nd Edition》这本书的尾声部分。

(转自知乎) 以下是《Learn Python The Hard Way, 2nd Edition》这本书的尾声部分。  看完了这本书,你决定继续做编程。也许它能成为你的一...

Effective Java 2nd Edition 英文版

  • 2015年05月28日 15:32
  • 1.92MB
  • 下载

Effective Java, 2nd Edition(新版)

  • 2009年05月14日 01:59
  • 1.17MB
  • 下载

java之Class Loading Architecture --《Java_Security_2nd_Edition》

java之Class Loading Architecture --《Java_Security_2nd_Edition》       We'll show some examples of...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Effective C++ 2nd Edition (2)
举报原因:
原因补充:

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