【发布时间】:2011-11-23 05:25:09
【问题描述】:
我正在尝试使向量保存指向函数的 void 指针,这些函数稍后将被安全调用。
所以,可以说我有三个功能。 int a(), void b();, bool c();
我的向量是vector<void *> vec;
还有我的函数,它存储指向函数的指针。
void registerFunction(void *func)
{
vec.push_back(func);
}
现在我的问题是当试图调用所有存储的函数时,因为它们都是空指针,我不能在不知道它们的类型的情况下调用这些函数。
所以我的问题是......有什么方法可以存储符号类型,以便我可以将它们与它们各自的指针相关联,然后在调用指向函数的 void 指针时进行类型转换?
注意:函数不一定是类型,例如void (*)(),我也想添加方法,因此即。 void (someclass::)()。是不是要求太多了?它应该工作吗?
【问题讨论】:
-
“指向函数的空指针” - 一个矛盾的终点。 (您最多可以获得与其对应的内存地址,但是您将离开 C++ 规范)
标签: c++ function casting void-pointers