我有一些像这样定义的函数:
ParentClass* fun1();
ParentClass* fun2();
ParentClass* fun3(bool inp=false);
ChildClass* fun4();
ChildClass* fun5(int a=1, int b=3);
Run Code Online (Sandbox Code Playgroud)
我想将它们放入如下的某种数组中:
void* (*arr[5])() = {
(void* (*)())fun1,
(void* (*)())fun2,
(void* (*)())fun3,
(void* (*)())fun4,
(void* (*)())fun5
}
Run Code Online (Sandbox Code Playgroud)
现在我想简单地使用这个函数数组
for(int i=0; i<5; i++)
someFunction(arr[i]());
Run Code Online (Sandbox Code Playgroud)
现在我在这里意识到问题是void* (*arr[5])(),但鉴于我只想使用函数而不提供参数,我希望所有这些都是同一个数组的一部分.
不过,这些都是非常C风格的方式.有没有更好的方法来使用C++中的模板?
我真正想做的是告诉它在调用 setVisible(true) 或 setVisible(false) 时不要移动东西。我怎样才能做到这一点?