const

1.       const指定一个不该被改动的对象,它允许你告诉编译器和其它程序员某值应该保持不变

2.       const char* p = greeting;               //non-cosnt pointer, const data

char* const p = greeting;               //const pointer, non-const data

const char* const p = greeting;     //const pointer, const data

如果const出现在 * 左边, 表示被指物是常量;如果出现在 * 右边,表示指针自身是常量。

void f1(const Widget* pw);

void f2(Widget const* pw);

两种写法意义相同

3.       STL迭代器的作用就像个T*指针

std::vector<int> vec;

……

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

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

因此,如果希望迭代器所指的东西不可被改变,应用const_iterator

4.       令函数返回一个const

const Rational operator*(const Rational& lhs, cosnt Rational& rhs);

……

Rational a,b,c;

if(a*b = c)…                        //本来想做比较==,若为const,则会报错

如果a,b是内置类型,则不合法;但良好的自定义类型则允许对两值乘积做赋值动作。

const参数 除非有需要改动参数或local对象,否则将它们声明为const,则可以发现“==”意外键成“=”的错误。

5.       const成员函数

1>. 它们使class接口比较容易理解,因为得知哪个函数可以改动对象内容而哪个函数不行很重要

2>. 它使操作const对象成为可能

如果两个成员函数只有常量性不同,可以被重载

真实程序中const对象大多用于passed by pointer-to-constpassed by reference-to-const的传递结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值