为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下double appleA() const,const是什么意义?

请问一下double appleA() const,const是什么意义?

守候你守候我 2021-11-25 22:15:52
double appleA() const {return x*x;}我只知道const一个变量,是使这个变量参与到算法中后不被修改在appleA这个函数上,是什么意义?谢谢解答!!!
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

只有appleA()是一个类的非静态成员函数时候才可以这么写const
类的非静态成员函数不管有几个参数,都会隐性的传入一个参数this,this是这指向该类的对象的指针,加了const以后,表示不可以更改这个对象的成员变量
譬如
class Apple
{
double x;
public:
double appleA() const {return x*x;}
}
如果是double appleA() const
{
x++;//编译时会报错
return x*x;
}
函数体中的x其实是this->x,this这时可以省略,也可以不省略

查看完整回答
反对 回复 2021-11-29
?
翻阅古今

TA贡献1780条经验 获得超5个赞

表示,任何传入这个函数的外部变量都不会在这个函数中被改变。
如果有变量的值在这个函数运算过程中被改变,则编译程序时,会出现错误提示。

它其实没什么特殊的用途,只不过体现了一种软件工程的思想。明确地告诉了
所有调用它的程序段,我本身是安全的。养成一种好的编程习惯。

查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 265 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信