返回bool的函数数组

Jon*_*ham -1 c++ arrays function

我有这些布尔函数,我正在单独编写,我正在考虑创建一个数组,然后使用循环来遍历它们中的每一个.下面是我想要放在数组中的各个函数.

bool A(void);
bool E(void);
bool O(void);
bool P(void);
bool U(void);
bool I(void);
bool C(void);
bool L(void);
bool D(void);
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

M.M*_*M.M 5

你可以有一个std::functions 数组(这是一个通用的函数指针).示例程序:

#include <array>
#include <functional>
#include <iostream>

typedef bool Func(void);

Func A,E,O,P,U,I,C,L,D;

int main()
{
    std::array<std::function<Func>, 9> arr = { A,E,O,P,U,I,C,L,D };

    for ( auto&& f: arr )
        std::cout << f() << '\n';
}
Run Code Online (Sandbox Code Playgroud)

当然,您需要为所有这些功能提供机构.

在C++ 11之前,代码应该是:

Func *arr[] = { A,E,O,P,U,I,C,L,D };

for (size_t i = 0; i != sizeof arr / sizeof arr[0]; ++i)
    std::cout << arr[i]() << '\n';
Run Code Online (Sandbox Code Playgroud)

使用现代C++代码可以提供更多的安全性和灵活性,因此如果您有可用的现代编译器,则首选.