我想根据上下文调用一个函数,这是我似乎无法掌握的多态思想。
以下示例是否是可行的解决方案?您可以在其中创建一个结构并根据上下文指向相关功能:
我知道我应该为结构分配内存,这不是我在伪代码中所做的
struct ContextMethods{
void (*memberMethod)();
} ContextMethods;
void debugFunction(){ returns debug info};
void productionFunction( does usefull production stuff);
void run(ContextMethods local_context);
main(){
struct ContextMethods local_struct;
if(DEBUG){
local_struct->memberMethod = &debugFunction;
}
if(PRODUCTION){
local_struct->memberMethod = &productionFunction;
}
run(local_context);
}
run(local_context){
local_context->memberMethod();
}