【问题标题】:Runtime polymorphism in C [duplicate]C中的运行时多态性
【发布时间】:2014-01-19 12:33:43
【问题描述】:

有人可以简单解释一下如何在 C 中实现或模拟运行时多态性。

另外,这是运行时多态性的一个有效示例:

void fred(){
  printf("Fred here!\n"); 
}

void john(){
  printf("John here\n");
}

void barbara ( void (*function_ptr)() ){
  (*function_ptr)();
}

int main(){
  barbara (fred);
  barbara (john);
  return 0;
}

函数 barbara 动态调用 john()fred()。这就是运行时多态究竟吗?

【问题讨论】:

标签: c


【解决方案1】:

函数 barbara 动态调用 john() 或 fred()。

不,它没有。 barbara() 调用您将其作为参数传递的任何函数。 barbara() 无论你传递什么,都会做同样的事情——也就是说,它会执行你作为参数传递的函数。

这就是运行时多态性吗?

不。如果barbara()查看参数并根据参数的某些特征(尤其是类型)改变其行为,那么您将更接近多态性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2016-02-03
    • 2015-05-11
    • 1970-01-01
    相关资源
    最近更新 更多