请帮助我查看以下代码。
我想知道为什么变量“ b ”不是修改后的值。
我不能使用引用更改值?
谢谢!
#include <iostream>
using namespace std;
class Foo{
public:
int a = 1;
int& check(){
return a;
};
};
int main()
{
int b;
Foo foo;
b = foo.check();
cout << b << endl;
foo.check() = 2;
cout << foo.a << endl;
cout << b << endl;
return 0;
}
输出是
1
2
1
正如@Igor Tandetnik指出的那样,foo.check返回一个引用,但是b是一个int,而不是对int的引用,因此它保留了原始值。
您想要的可以通过...实现
#include <iostream>
using namespace std;
class Foo
{
public:
int a = 1;
int &check()
{
return a;
};
};
int main()
{
Foo foo;
int &b { foo.check() };
cout << b << endl;
foo.check() = 2;
cout << foo.a << endl;
cout << b << endl;
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句