根据上下文指向内存中的函数-多态性

时间:2019-03-20 21:24:42

标签: c oop pointers polymorphism

我想根据上下文调用一个函数,这是我似乎无法掌握的多态思想。

以下示例是否是可行的解决方案?您可以在其中创建一个结构并根据上下文指向相关功能:

我知道我应该为结构分配内存,这不是我在伪代码中所做的

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();
}

0 个答案:

没有答案