C++中的各种const总结

来源:互联网 发布:旅行商问题算法回溯法 编辑:程序博客网 时间:2024/06/15 07:19

部分内容转自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成员函数会有修改成员变量的企图。


0 0
原创粉丝点击