《编写高质量代码:改善C++程序的150个建议》读书笔记2

来源:互联网 发布:软件脱壳教程 编辑:程序博客网 时间:2024/05/16 11:34

1. 明白在C++中如何使用C。

C++继承了很多C语言的特性,但是有一些还是没有继承到,或者有改进。

C++和C语言的编译和链接的方式不同,例如对应

int Function(int a, float b);
这样的函数,C编译器得到的符号是_Function,而C++特别强调类型安全,因此编译后的符号可能是_Function_int_float这样的形式。

给予以上的原因,C++使用了extern "C“这样的链接指示,来协调C++中使用C语言代码或库。


2. 使用memcpy()等函数时要小心。

主要的原因是C++中的多态引入了虚函数表,使得C++中的对象的数据是分散的,而memcpy()这类函数只能处理连续的数据对象。


3. 尽量使用new/delete来代替malloc/free。

原因主要有几点:

1) new/delete可以调用构造函数和析构函数;

2) new之后不需要再强制转换类型;

3) new失败会有回调函数,mallloc失败直接返回NULL。


4. 关于输出,建议使用#include <iostream>,cout <<。

然而实际的项目中,应该都有自己包装的输出函数吧?


5. 尽量使用C++风格的强制转换。


6. 尽量使用const/enum/inline替换#define。

关于enum有一个有意思的例子:

class CStudent {private:enum {NUM_LESSONS = 5};int scores[NUM_LESSONS];};
这里使用了enum代替了原来#define做的事情。


7. 用引用替代指针。

0 0
原创粉丝点击