可以说,例如,我有以下代码:

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()。

最佳答案

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

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

关于c++ - 检查一系列功能是否相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52435218/

10-11 15:33