c++ 引用 class 成员但不更改值
c++ reference to a class member but not changing value
请帮我查看以下代码。
我想知道为什么变量“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 returns 一个引用,但是 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;
}
请帮我查看以下代码。
我想知道为什么变量“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 returns 一个引用,但是 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;
}