编译显示的error如下:
error: passing 'const Fraction' as 'this' argument of 'int Fraction::getson()' discards qualifiers [-fpermissive]
示例代码如下:
#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,表示不会修改该对象的成员。