Effect_C++_Learning 1
条款1 视c++为一个语言联邦
随着C++的逐渐成熟,开始接受不同于C With Class的各种观念,特性和编程战略。
今天的C++已经是个多重泛型编程语言,一个同时支持过程形式,面向对象形式,函数形式,泛型形式,元编程形式的语言。
其主要次语言主要有四个,每个次语言都有自己的规约:
- C
- Object-Oriented C++
- Template C++
- STL
在使用不同的次语言时要使用符合这一种语言的策略,才能实现高效编程。
条款2 经量以const,enum,inline替换#define
处理#define的为预处理器
- 定义常量,若
#define MAX_NUM 1000
MAX_NUM可能并未进入符号表,那样当获得一个编译错误时,错误信息也许会提到1000而不是MAX_NUM,导致难以调试。 可用const或enum替换 - 若为形似函数的宏,由于其只是单纯的替换字符,可能会出现错误,在此书中就有个例子: 可用inline函数替换