volatile:
省去编译器的优化
static:
用于局部变量时,可保留局部变量的空间,他的创建和初始化操作只执行一次。
用于全局变量或函数时,限定全局变量或函数只允许在本文件中使用。
用于类成员变量时,表示这个成员变量不属于一个对象,而是属于整个类,所有对象共享一份(静态数据成员初始化写到类外面,静态常量成员在定义时直接初始化)。
用于类成员函数时,表示它不操作对象的数据成员,或者它修改类的静态数据成员,也是整个类共享一份。调用静态成员函数时直接用类名::,不需要用对象调。静态成员函数中不能用this。静态成员函数中不可以访问非静态成员。
const:
定义常量。
定义常量指针,定义指向常量的指针。
用临时值初始化引用则要求这个临时值必须是const.
放于成员函数形参表后面则表示该函数不修改数据成员。
常量对象中有需要修改的成员则用 mutable.