提前道歉,我觉得我在这里缺少主要的东西。每当我以这种方式调用函数时,它都无法更改对象成员变量。
我要解释的最简单方法是举一个例子:

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/

10-08 22:12