Effective C++中文版

守则01:把C++看做一个语言的集合,而不是单一的语言

“C++ is a federation of languages”
早期的C++只是叫"C with classes",但发展到今天已经成为一个多重泛型编程语言(Multi-paradigm programming language),它具有4种“子语言”:

C
面向对象的C++
模板C++
STL
高效的C++编程守则取决于你所使用的“子语言”

例如:

在C中,一般使用值传递 (Pass by value)
在面向对象的C++和模板C++中,使用常量引用传递 (Pass by const reference)更加高效
对于STL,因为迭代器是基于指针构造而成,直接使用值传递即可
在不同的"子语言"中需要你用不同的策略,而非自始至终单一的方法,记住这一点对于理解学习C++这样功能强大的语言十分有帮助

守则02:尽量使用const, enum, inline, 减少宏变量#define的使用

①或者说,尽量多用编译器,少用预处理器

“Prefer the compiler to the preprocessor”
例如:

#define A 1.653
在上面这个语句中,字符串’A’是不会被编译器看到的,而编译器看到的是’1.653’,这就会导致在调试过程中,编译器的错误信息只显示’1.653’而不是’A’,让你不知从何下手。

解决方法:定义全局常量

const double A = 1.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值