浅析const标识符在C++函数的功能

范例:

class matrix

{

public

     matrix(){};

      const double getvalue(const unsigned row, const unsigned column) const; 

private:

      balabalabala;

}

 

上述范例声明了一个martrix类,该类包含一个getvalue接口,内含3个const标识符,这也是const在C++函数中最常出现的三个位置。

我们可以通过

matrix a;

double b=a.getvalue(x,y)的形式在主函数中调用此类接口。含义为:获取矩阵a在(x,y)位置的值,并将该值赋给b.

(1)第一个const:表示接口返回值b是不可被修改的,任何想要修改b值的行为都是非法的。

(2)第二个const:表示传入的实参在函数体是不可被修改的,例如我们不能在函数体使用x++,x--这些意图修改传入值的行为,这也是非法的。

(3)第三个const:表示调用该成员函数的类对象a是不可被修改的。

那什么时候用const呢? 能加const限定的时候,就最好加上,原因有二:

(1)非const的实参能够传入到形参是const的函数中,但是const实参是无法传入到形参不是const的函数内的,因为这种非法的行为会造成const实参在函数体可以修改的冲突,编译器编译时会报错。

(2)防止不能被随意修改的量,在程序执行的过程中,被无意间修改掉,可能连我们自己都没有意识到。

 

转载于:https://www.cnblogs.com/cbyzju/p/5186234.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值