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 Java 2nd edition 摘要

很久没有写blog了,不过学习不能停
  • eddyx
  • eddyx
  • 2014年07月18日 13:35
  • 437

[翻译] Effective C++, 3rd Edition, Item 39: 谨慎使用 private inheritance(私有继承)(上)

Item 39: 谨慎使用 private inheritance(私有继承)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blo...
  • fatalerror99
  • fatalerror99
  • 2005年11月22日 22:13
  • 5874

《Effective C++ 中文版 2nd Edition》读后感

    大学的时候学校开了C++的课程,我考的还不错。毕业后就一直搞软件开发,大概一年前开始用VC做项目。最近静下心来看了C++的经典著作《Effective C++ 》,才发现自己的C++水平其实真...
  • starlee
  • starlee
  • 2005年12月28日 12:53
  • 4788

[原创]强烈推荐,正在翻译的《Effective C++,3rd Edition》

我加入公司以来,经了一个月的培训期,真是受益良多。一来重新温故而知新,踏踏实实搞了一下C/C++,技术上精进不少。二来重新洗脑,抛去了原来在学校以及实习公司养成的编写代码的恶习,开始注重代码质量。很多...
  • coofucoo
  • coofucoo
  • 2005年08月27日 01:55
  • 1881

Programming: Principles and Practice Using C++

这本书已经看完了几个月,一直想写点什么,又不知从何说起。今天看到Linus对C++的一些批评,和这本书结合起来看,还有点意思。(Linus对C++的批评不是偶然的心血来潮,07年的时候就说过“C++ ...
  • chinaliping
  • chinaliping
  • 2013年05月15日 16:00
  • 1352

《C++.GUI.Programming.with.Qt.4》读书笔记Chapter 3

Chapter 3 Creating Main WindowsSection 1 Subclassing QMainWindow    应用程序的主窗口是通过创建QMainWindow的派生类来完成的...
  • yangdelong
  • yangdelong
  • 2007年09月07日 19:55
  • 1521

《Effective Java》Second Edition中文版笔记(完整)

第2章 创建和销毁对象
  • youngsend
  • youngsend
  • 2015年09月09日 14:30
  • 2735

[Python for Data Analysis]Python Basic2--Data Structure and Sequences

Tuple 初始化 In [2]: tup tup = 4,5,6 tup Out[2]: (4, 5, 6) In [3]: nested_tup nested_tup = (4,5,6)...
  • jaskson
  • jaskson
  • 2016年02月10日 06:27
  • 253

Effective C++ 2nd Edition (6)

十八. 努力让接口完满( complete )且最小化1. 接口函数愈多,潜在客户愈不容易了解它2. 大型接口容易令人迷失。3. 可维护性差4. 长长的头文件,编译时间长十九. 区分member fu...
  • johnny_zj
  • johnny_zj
  • 2011年01月11日 21:57
  • 136

《Effective C++ 2nd Edition》读书笔记

《Effective C++ 2nd Edition》读书笔记 Section 1: 改变旧有的C习惯( Shifting from C to C++ )       Item 1: 尽量以 cons...
  • xuleicsu
  • xuleicsu
  • 2005年12月14日 19:47
  • 898
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Effective C++ 2nd Edition (2)
举报原因:
原因补充:

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