我正在尝试执行以下代码:
#include <iostream>
using namespace std;
class A
{
int x;
public:
A(int i = 25) { x = i; }
int &f() const { return x; }
};
int main()
{
A a(15);
cout << a.f();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它创建一个名为的对象a,其x成员的值设置为15.但是,当我尝试调用该函数返回该值时,我收到一个错误.为什么会这样?
你试图返回一个引用x,这意味着
返回的内容可以用来修改x类对象.
但是,该方法const意味着不允许修改自己对象中的任何内容.
你看到了矛盾吗?
要么返回正常值而不引用,要么删除const