gpt4 book ai didi

c++ - 找到后更改类变量

转载 作者:行者123 更新时间:2023-11-28 01:27:39 25 4
gpt4 key购买 nike

我目前正在使用 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

如有必要,我也可以发布我的国际象棋引擎。谢谢!

最佳答案

在您的代码中,findMyChild() 正在返回 baby 的拷贝(按值返回的函数),像这样使用按引用返回。

child& parent::findMyChild(int var) {
if (var == 1)
{
return baby;
}
/* other codes */
return baby;
}

关于c++ - 找到后更改类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53096504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com