条款01 C++是多种语言的联邦
如果不考虑应用程序的使用场合,仅仅考虑语言的灵活性,我赞成作者的想法。但是不同的应用它会有不同的性能要求,所以语言的选择,应该是用“最适合”条款去选择。
条款02 尽量使用const、inline、enum替换#define
使用宏定义常量,若定义在头文件中,则所有包含头文件的都可以使用。
宏定义,在预处理的时候进行替换。
宏定义一些简单的函数,可以减少调用开销,但是也会存在一些隐患,宏展开的问题。
C++中建议用const和inline、enum主要是弥补一些隐患。
建议:
对于单纯常量,最好用const、enum替换#define。
对于形式函数的宏,最好改用inline替换#define。
条款03尽可能使用const
对const关键字的使用,仅仅停留在不可写。
建议:
将某些东西申明为const可帮助编译器检测出错误的用法,如const函数不能改变对象状态。
当const和non-const成员函数有着实质的等价的实现时,令non-const版本调用const版本可以避免代码重复。