试图通过get / set方法修改类中的对象。我不明白如何仅使用get / set方法更改值。
预期输出:“输出:89”。
实际输出:“输出:0”
#include<iostream>
using namespace std;
class TestClass{
public:
int getValue() const{
return _value;
}
void setValue(int value) {
_value = value;
}
private:
int _value;
};
class A{
public:
TestClass getTestClass() const{
return _testClass;
}
void setTestClass(TestClass testClass) {
_testClass = testClass;
}
private:
TestClass _testClass;
};
int main()
{
A a;
a.getTestClass().setValue(89);
cout<<"Output :"<<a.getTestClass().getValue();
}
答案 0 :(得分:0)
您将返回_testClass
的副本。因此,当您使用setValue(89)
对其进行修改时,什么也不会发生,因为您只修改了在行尾丢弃的副本。相反,您应该返回引用。
在此处更改:
TestClass getTestClass() const{
对此:
TestClass &getTestClass() {
您将获得预期的输出。
答案 1 :(得分:0)