【发布时间】:2018-11-01 06:59:34
【问题描述】:
我目前正在使用 C++ 开发国际象棋引擎,并且在引擎中,我正在尝试修改另一个名为“ChessBoard”的类“ChessTile”中的字符串变量“piece”。
无论如何,当我使用函数返回一个类,然后修改该类时,它不会改变源变量,我想知道你是怎么做到的。
这是我编写的一个简单脚本来演示:
#include <iostream>
#include <string>
class child {
private:
int myVar;
public:
child(int v) {
myVar = v;
}
int getVar() {
return myVar;
}
int setVar(int Svar) {
this->myVar = Svar;
return 0;
}
};
class parent {
public:
child baby = child(0);
child findMyChild(int var) {
if (var == 1) {
return baby;
}
}
};
parent DAD;
int main() {
std::cout << DAD.findMyChild(1).getVar() << std::endl;
DAD.findMyChild(1).setVar(50);
std::cout << DAD.findMyChild(1).getVar() << std::endl;
}
这个的输出是:
0
0
但我希望它是:
0
50
如有必要,我还可以发布我的国际象棋引擎。谢谢!
【问题讨论】: