関数が実行される順序を気にしない場合は、次を使用できます。
return (check1() + check2() + check3() + check4()) == 4;
別の可能性は、関数へのポインターを使用することです。これにより、それらをループで呼び出すことができます。
typedef bool (*f)();
f checks[] = {check1, check2, check3, check4};
bool ret = true;
for (int i=0; i<4; i++)
ret &= checks[i]();
return ret;
これは 4 つの関数を処理する場合にはあまり役に立ちませんが、4 が単なるデモであり、実際にはもっと多くの関数がある場合 (または拡張の可能性が高い場合)、これにより多数の関数を処理することが比較的簡単になります。必要であれば。
明確さよりも簡潔さを重視する場合は、次のようにすることができます。
bool ret = check1();
return (ret &= check2()), (ret &= check3()), (ret & check4());