检查一系列功能是否相同

时间:2018-09-21 01:01:02

标签: c++

比如说我有以下代码:

bool foo1() {
    check something...
}

void foo2() {
    do something ...
}
void foo3() {
    do something ...
}
void foo4() {
    do something ...
}
void foo5() {
    do something ...
}
void foo6() {
    if (foo1()) foo2();
    if (foo1()) foo3();
    if (foo1()) foo4();
    if (foo1()) foo5();
}

有更好的方法吗?我不想每次都写if语句,但是其他每个函数都可能会更改foo1()的计算。

我有一系列不同的功能,我希望它在每次调用前使用foo1()。

1 个答案:

答案 0 :(得分:2)

您可以将函数放在容器中,然后使用循环:

std::vector<void (*)()> functions = {foo2, foo3, foo4, foo5};
for (auto f: functions)
    if (foo1())
        f();