C++初学者的问题:this指针和const常量的问题

为什么|error: passing 'const Fraction' as 'this' argument of 'int Fraction::getson()' discards qualifiers [-fpermissive]|会这样,而我把getson()改成了int getson() const{return son;}就没有错误了。不可以通过常量指针a改变变量,那为什么一定要把this指针也弄成常量指针呢?很困惑呀!大神们,帮帮我!,
#include<iostream>
#include<fstream>
using namespace std;
class Fraction{
private:
int son;
int mum;
public:
Fraction():son(1),mum(1){};
int getson(){return son;}
void co(const Fraction &a)

{
cout<<a.getson()<<endl;
}

int main()
{
Fraction a;
cout<<co(a);
return 0;
}

C++中const 引用的是对象时只能访问该对象的const 函数,因为其他函数有可能会修改该对象的成员,编译器为了避免该类事情发生,会认为调用非const函数是错误的。
函数末尾加const,表示不会修改该对象的成员。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答