首页 > 学院 > 开发设计 > 正文

const 用法

2019-11-08 03:24:21
字体:
来源:转载
供稿:网友

规则:如果关键字const出现在星号左边,表示所指内容是常量。如果出现在星号的右边,表示指针本身是常量(内存的地址不变)。如果出现在星号的两边,表示被指物和指针两者都是常量。

char a[]="hello";char *p=a;//non-const pointer,non-const dataconst char* p=a;//non-const pointer,const datachar* const p=a;//const pointer,non-const dataconst char* const p=a;//const pointer,const data

迭代器的作用像个T*指针。声明迭代器为const等价于T* const.表示这个指针的地址时不能变的,但是其内容可以改变。如果希望迭代器所指内容不要变,需要用const_iterator.

std::vector<int> vec;const std::vector<int>::iterator iter=vec.begin();//T* const*iter=10;//正确++iter;//错误std::vector<int> vec;std::vector<int>::const_iterator citer=vec.begin();//const T* *citer=10;//错误++citer;//正确

成员函数是const:

bitwise constness: 成员函数只有在不更改对象内任何成员变量(static除外)时才可以说是const.

logical constness: 一个const成员函数可以修改它所处理的对象内的某些成员,但只有在客户端侦测不出的情况下才如此。即使用关键字mutable去释放non-static成员变量的bitwise constness约束。


当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可以避免代码重复。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表