尝试通过 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();
}
replace
TestClass getTestClass() const{
return _testClass;
}
with
TestClass& getTestClass() {
return _testClass;
}
你想返回一个参考 https://en.wikipedia.org/wiki/Reference_(C%2B%2B)否则你只是返回变量的副本。但请记住,返回对类的成员变量的(非常量)引用并不是一个好的设计方法。
有些事情:
请不要使用using namespace std;
- read here https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice why.
请不要命名你的变量_testClass
- 一起去m_testClass
反而。你可以阅读hear https://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier关于推理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)