关闭

Effective.C++学习(学习中)

185人阅读 评论(0) 收藏 举报


基础:

1、尽量使用const、inline而不使用#define.

尽量的把任务交给编译器去做。


2、尽量用<iostream>而不用<stdio.h>


3、尽量用new/delete而不用malloc/free


4、尽量使用C++风格的注释

 

内存管理:

内存管理:

1、对应的new和delete要采用相同的形式

用new的时候会发生两件事:

首先,内存被分配

然后,为被分配的内存调用一个或多个构造函数

2、析构函数里对指针成员调用delete

3、预先准备好内存不够的情况

assert这个宏检查传给它的表达式是否非零,如果不是非零值,就会发出一条出错信息并调用abort。assert只是在没定义标准宏ndebug的时候,即在调试状态下才这么做。

4、写operator new和operator delete时要遵循常规

很重要的一点是函数提供的行为要和系统缺省的operator new一致。实际做起来也就是:要有正确的返回值;可用内存不够时要调用出错处理函数(见条款7);处理好0字节内存请求的情况

5、避免隐藏标准形式的new

因为内部范围声明的名称会隐藏掉外部范围的相同的名称,所以对于分别在类的内部和全局声明的两个相同名字的函数f来说,类的成员函数会隐藏掉全局函数

一种方法是在类里写一个支持标准new调用方式的operator new

另一种方法是为每一个增加到operator new的参数提供缺省值

6、如果写了operator new就要同时写operator delete

 

待续......

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52420次
    • 积分:875
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:33篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论