条款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]);//复用
}
}
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]);//复用
}
}
相关文章推荐
- ESB-Mule-demo-实例
- Unity3d-Socket之龙一编年史network.dll分析(2)-> CNetLogger
- LSM树以及在hbase中的应用
- NOIP 马拦过河卒
- bzoj2594
- 用了17年的Google Logo大改了
- hdu1060 Leftmost Digit
- Android开发之自定义控件与属性动画Animation的结合使用
- UvaLive 3709 Hard Life(最大密度子图)
- Schema约束
- bzoj2594
- 华为oj_学英语
- 聚集索引和非聚集索引
- Mac上搭建本地svn服务器并使用cornerstone连接本地svn服务
- Qt 中如何捕获窗口停用和激活的消息
- php小代码----curl模拟登录及登录后并通过多线程进行重复post数据提交
- 埃拉托色尼筛算法
- Android笔记:如何写出一个侧滑菜单
- Vesions ignore & ld: library not found for -l...
- 单元测试