02 尽量以 const、enum、inline 替换 #define
Prefer consts,enums,and inlines to #define
C 语言中的宏定义经常会产生一些我们不希望看到的结果,为了解决这个问题,C++ 的做法是尽量使用 const、enum、inline 替换 #define。当然 C 语言也可以,但是没有 C++ 语言那么灵活。
编译程序的过程通常是先进行预处理,而 #define 定义的部分在预处理阶段就被响应的值或者表达式替换了,所以在编译阶段,针对 #define PI 3.1415
这条宏定义,编译阶段是不知道 PI 的存在的。如果我们在头文件中使用 const double Pi = 3.1415;
替换 #define PI 3.1415
就不会有这样的问题。
tips:const std::string name("xchaojun");
替换const char* const name = "xchaojun";
更适宜。
class GamePlayer {
private:
static const int num =