gpt4 book ai didi

c++ - 修改对象而不将其用作参数

转载 作者:行者123 更新时间:2023-11-30 01:31:37 26 4
gpt4 key购买 nike

我有一个全局对象“X”和一个类“A”。我需要 A 中的函数 F,它能够修改 X 的内容。

由于某些原因,X 不能是 A 的数据成员(但 A 可以包含一些成员 Y 作为 X 的引用),而且 F 不能有任何参数,所以我不能将 X 作为参数传递给 F。(这里A是一个dialog,F是一个没有任何参数的slot,比如accept())

如果我不能将 X 传递给它,我如何修改 F 中的 X?有没有办法让A知道“X”是它需要修改的对象??我尝试添加诸如 SetItem 之类的东西以在 A 中指定 X,但失败了。

最佳答案

如果您不希望 F 全局引用 X,那么您可以在调用“worker”方法之前在对象上“设置”它。例如

class A
{
public:
A() : member_x(NULL) { }
void SetX(X* an_x) { member_x = an_x; }
void F(); { member_x->Manipulate(); }

private:
X* member_x;
};

X global_x;
A global_a;

void DoStuff()
{
global_a.SetX(&global_x);
global_a.F();
}

关于c++ - 修改对象而不将其用作参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853703/

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