gpt4 book ai didi

c++ - 如何获取实例的所有 `this` 数组

转载 作者:行者123 更新时间:2023-11-27 23:42:13 28 4
gpt4 key购买 nike

<分区>

假设单击 Button 时,将触发 btn_Click 事件处理程序。

我有 sender,这是一个包含对引发事件的控件/对象的引用的参数。发件人部分将是对被单击按钮的引用。如果控件向自身引发事件,则中止进程(只需调用 return)。

struct EventArgs { /* The arguments of the event */ };
struct A { int x; virtual ~A() = default; };
struct B { int y; virtual ~B() = default; };
struct C : public virtual A, public virtual B {
void btn_Click(void* sender, EventArgs* e) {
if (sender == static_cast<void*>(this)) return;
else { /* Handle the event */ }
}
};

int main() {
A* a = new C();
dynamic_cast<C*>(a)->btn_Click(a, nullptr);
}

假设 sender 是 a,上面的代码 sender == this 将计算为 false。

我该怎么做才能让它返回 true?我想我需要创建一个包含所有 this 指针的数组,然后将 sender 与所有指针进行比较。

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