1.#define缺点1
#define NUM 1.2
记号NUM可能没有进入记号表,在调试或者错误信息中,无法知道1.2的含义。
改善:通过const int NUM = 1.2;
2.#deine缺点2
无法利用#define创建一个class专属常量,一旦宏被定义,它就在其后的编译过程中有效(除非遇到#undef)。
改善:可以通过const成员变量来满足要求。
3.const成员变量缺点
占用存储空间
改善:通过enum代替
4.对于形似函数的宏,最好改用inline函数替换#define。