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这时可以省略,也可以不省略
翻阅古今
TA贡献1780条经验 获得超5个赞
表示,任何传入这个函数的外部变量都不会在这个函数中被改变。
如果有变量的值在这个函数运算过程中被改变,则编译程序时,会出现错误提示。
它其实没什么特殊的用途,只不过体现了一种软件工程的思想。明确地告诉了
所有调用它的程序段,我本身是安全的。养成一种好的编程习惯。
添加回答
举报
0/150
提交
取消