const:
通俗的讲,就是一编译器代替预处理器。
class的专属常量,且只有一份拷贝,需要在类内定义:
static const int i = 0;
这样不会提示出错。如果定义为static int i = 0 ;则编译器会提示:“错误:ISO C++ 不允许在类内初始化非常量静态成员 ”
enum:
typedef enum Type
{
One,
Two,
Three,
};
Type T = One;
对于上面的定义,One,Two,Three是不占内存空间的,只有T才占内存空间。
One只是一个编译器的标号
int v[One];正确;
int v[T];错误;
对于单纯常量,最好以const对象或者enums替换#define。
对于形似函数的宏,最好改用inline函数替换#inline。