部分内容转自http://blog.csdn.net/Eric_Jo/article/details/4138548
1、定义const常量:
const int a=1;
Note:如果多个文件之间共享const常量,则需要在声明和定义的时候加externd,编译时分配内存,且不用初始化.
2、const指针:
const int i=0;
const int * ptr=&i;//指针指向const类型的值。只有此类指针才能指向const对象。
int * const prt=&i;//指针本身所存的地址不可变。
Note:记忆方法如下
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
const int * const ptr=&i;\\两者都不可变。
3、const修饰引用:
int i=1;
const int c=10;
const int & rc=c;\\const 引用绑定在const常量上
const int &i =&i\\允许将const引用绑定在普通变量上,反之不可以。
4、const修饰成员函数:
const修饰类的成员函数,则该成员函数不能修改类中任何非const成员函数。一般写在函数的最后来修饰。
对于const类对象/指针/引用,只能调用类的const成员函数,因此,const修饰成员函数的最重要作用就是限制对于const对象的使用。
a. const成员函数不被允许修改它所在对象的任何一个数据成员。
b. const成员函数能够访问对象的const成员,而其他成员函数不可以。
5、const修饰成员变量:此时,成员变量只能在初始化列表中赋值。
6、const修饰类对象:
const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改。对于对象指针和对象引用也是一样。
const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。