2 つのパラメーターが設定されている場合、関数「general_function()」を呼び出す必要があります。お気に入り:
.cpp ファイル
if (var_a == 1) {
general_function();
}
if (var_b == 1) {
generam_function();
}
general_function の定義は次のとおりです。
function general_function() {
// Some 40 lines
// Some 20 lines .. *
// Some 40 lines
}
現在、両方の呼び出しで、* でマークした 20 行が異なっています。したがって、var_a が設定されると、20 行のセットが実行され、var_b が設定されると、別の 20 行のセットが実行されます。
この状況を克服する方法はたくさんあります。関数を作成し、パラメータを渡します。しかし、OOP の世界から何かをしたかったのです。そのため、そこで関数ポインターを作成しました。だから、これは私がやったことです:
.h ファイル
bool function is_a_set(string str, char* name) {
// Do something
}
bool function is_b_set(string str, char* name) {
// Do something
}
.cpp ファイル
if (var_a == 1) {
general_function(is_a_set);
}
if (var_b == 1) {
general_function(is_b_set);
}
general_function の定義は次のとおりです。
function general_function(bool (*choice)(string, char*)) {
// Some 40 lines
choice(string, char*);
// Some 40 lines
}
私はそれが今まで明らかであることを願っています。しかし、「エラー:general_function()の呼び出しに一致する関数がありません」が表示されます
あなたは何かを見つけることができますか?