在任何适宜的地方使用const:参数、变量、方法。
1,const常量
const int WEEK = 7;
用const创建常量时必须初始化,以后再不能赋值。与用define定义常量相比,const常量时固定类型的,因此编译器可以在使用它们进行类型检查,另外,它们在预处理后仍然存在,它们的名字在调试器中仍然有效。
尽量使用const、enum代替define来定义常量。
2,成员函数const
void someFunction() const;
将一个类的方法声明为const,则必须保证该方法不会该类的任何一个成员变量的值。访问函数经常通过使用修饰符const声明为常量函数。
对于不改变类的成员变量的成员函数,都应该使用const声明为常量函数。
3,const指针
const int * pOne;
int * const pTwo;
const int * const pThree;
pOne是一个指向整型常量的指针,该指针指向的值是不能改变的。
pTwo是一个指向整型常量的指针,它指向的整数可以改变,但是pTwo不能指向其它变量。
pThree是一个指向整型常量的指针,它指向的值不能改变,也不能改变其指向的变量。
4,const this指针
当声明一个对象为const时,等于声明了一个指向const对象的this指针。一个const指针只能用来调用const型成员函数。
5,传递const指针
当要传递一个指针给函数,又不希望该函数改变指针所指向的对象,则需要使用修饰符const提供保护机制。
尽可能的使用const保护引用和指针。