提前道歉,我觉得我在这里缺少主要的东西。每当我以这种方式调用函数时,它都无法更改对象成员变量。
我要解释的最简单方法是举一个例子:
class herp
{
private:
string derp;
public:
void mderp(herp x, string y) {x.derp = y;}
}
herp object_0;
string temp = "asdf";
object_0.mderp(object0, temp);
最佳答案
您正在将herp x
作为值类型传递。在这种情况下,x
是所传递内容的副本。如果要直接访问x.derp
,则应传递x
作为引用:
void mderp(herp& x, string y) {x.derp = y;}
这应该允许
x.derp
进行修改。关于c++ - 可以在类中内置 “public:”函数来更改从其调用的类对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22447441/