当设置了两个参数时,我需要调用一个函数“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()”
你能发现什么吗?