タイトルの言い回しが正しいのか、もっといい言い方があるのかはわかりませんが、大丈夫だと思います。
とにかく、これまでのところ、次のことを理解しています。
a.b("a", "b", "c", foo);
「foo」は、引数を取らない他の場所で定義された関数であり、上記のパラメーターを使用して関数 ab() が実行されるだけです。パラメータ「foo」は、関数 ab() 内で単に「foo()」として呼び出すことができます。つまり、上記の呼び出しは、関数 ab の引数として関数ポインターをパラメーターとして使用していると理解しています。
さて、ここで私がやろうとしていることは...
上記と同様のことを実行できるようにしたいのですが、今回は次のように foo にその引数にパラメーターを渡す必要があります。
a.b("a", "b", "c", foo("bar"));
ここに問題があります。これは文字通り、パラメータ "a"、"b"、"c" と、使用されているfoo("bar") の結果になります。私はこれをしたくありません。foo("bar") が文字通り渡されるようにして、関数 ab で次のようにします (ヘッダーとして):
a.b(first, second, third, fourth);
4 番目のパラメーターを次のように参照して呼び出すことができます。
fourth();
「4番目」に引数が含まれていても。この問題を回避する方法が見つからないようです。何かアドバイスはありますか?
ありがとう!