猿问

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

double appleA() const {return x*x;}
我只知道const一个变量,是使这个变量参与到算法中后不被修改
在appleA这个函数上,是什么意义?
谢谢解答!!!

守候你守候我
浏览 254回答 2
2回答

呼如林

只有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这时可以省略,也可以不省略

翻阅古今

表示,任何传入这个函数的外部变量都不会在这个函数中被改变。如果有变量的值在这个函数运算过程中被改变,则编译程序时,会出现错误提示。它其实没什么特殊的用途,只不过体现了一种软件工程的思想。明确地告诉了所有调用它的程序段,我本身是安全的。养成一种好的编程习惯。
随时随地看视频慕课网APP
我要回答