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 C++----3rd Edition, Item 2:用consts,enums和inlines取代#define

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

Effective C++中文版2nd Edition

  • 2009-06-10 10:21
  • 454KB
  • 下载

Effective C++ 2nd Edition

  • 2009-09-27 18:56
  • 516KB
  • 下载

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

  • 2013-09-17 21:40
  • 459KB
  • 下载

Note On <Programming Entity Framework 2nd Edition> -02: How to Use SqlExpress Profiler 2.0

Chapter3: Querying Entity Data Models The example code of Entity SQL in this chapter at page 57 does...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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