您的位置:首页 > 其它

条款03 use const whenever possible

2015-09-03 17:12 417 查看
1 多才多艺的const

const 可以修饰类外global或namespace作用域中的常量,文件,函数 ,块中的static的对象 类内的静态与非静态成员??文件怎么修饰?

2 STL迭代器系以指针为根据塑模出来的

const std::vector<int>::iterator iter = vec.begin() //iter 的作用像个T*const

std::vector<int>::const_iterator citer = vec.begin() // citer的作用像个const*T

3 mutable 修饰的成员变量可以在常成员函数中改变

4 处理一个问题时,通常需要const与non-const两个版本的,且代码略显重复,可用下列方式解决

class textblock{//const/non-const对象都可以调用常成员函数

public:

...

const char&operator[](int pos)const{

...

...

return text[pos];

}

char&operator[](int pos){

return const_cast<char&>(static_cast<const textblock&>(*this)[pos]);//复用

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: