小编vc6*_*669的帖子

如何创建不同原型的函数指针数组?

我有一些像这样定义的函数:

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++中的模板?

c++ oop function c++14

28
推荐指数
3
解决办法
2341
查看次数

在 Qt 中,使用 hide() 或 setVisible(false) 时,如何阻止子网格布局尝试将所有内容居中?

我真正想做的是告诉它在调用 setVisible(true) 或 setVisible(false) 时不要移动东西。我怎样才能做到这一点?

c++ user-interface qt

3
推荐指数
1
解决办法
1877
查看次数

标签 统计

c++ ×2

c++14 ×1

function ×1

oop ×1

qt ×1

user-interface ×1