无法从'const int'转换为'int&'

Shu*_*ury 0 c++

我正在尝试执行以下代码:

#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.但是,当我尝试调用该函数返回该值时,我收到一个错误.为什么会这样?

dev*_*fan 6

你试图返回一个引用x,这意味着
返回的内容可以用来修改x类对象.

但是,该方法const意味着不允许修改自己对象中的任何内容.

你看到了矛盾吗?
要么返回正常值而不引用,要么删除const

  • 或者在前面添加const (2认同)