gpt4 book ai didi

c++ - 调用保存在结构中的对象方法(MSVC2010)

转载 作者:行者123 更新时间:2023-11-28 02:19:33 25 4
gpt4 key购买 nike

有一个结构:

scheduled_call {
MyClass* object;
int value;
void (MyClass::*setter)(const int)
}

对于类:

MyClass {
void doSomething(const int);
}

结构编译一切顺利,但当我尝试将值作为函数调用时,它抛出错误:

我需要执行保存在此结构中的调用。我试过这个:

void executeIt(scheduled_call cl) {
cl.object->*(cl.method)(cl.value);
}

但是我得到:

error C2064: term does not evaluate to a function taking 1 arguments

我的编码基于 C/C++ function pointer guide .我这样做是作为一个实验,如果它失败了,我当然可以回退到 switch 语句。

任何人都可以在 Visual Studio 2010 下编译它吗?

最佳答案

您需要在您的struct 中提供一个有效的成员函数指针定义:

scheduled_call {
MyClass* object;
int value;
void (MyClass::*method)(int); // <<<<
}

关于c++ - 调用保存在结构中的对象方法(MSVC2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020745/

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