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

笔记2


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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值