2014-11-17 49 views
2

我可以在结构中包含或声明函数吗?我试图在C中实现多态性。如果定义一个函数不是正确的方法,我可以使用哪些其他方法?C中可能是多态吗?

+1

你不能让'struct'从其他'struct's继承,所以subclass-polymorphism在香草C中是不可能的(无需亲自操作)。 – voithos

+1

@voithos其实这在C中是可能的。 – 2501

+0

C中的多态性:只使用函数指针和铸造。 – sdao

回答

4

作为面向对象语言的一个特性,多态性在C语言中是不可用的。封装和继承都没有 - 语言没有相应的功能。

但是,这并不意味着用C的常规特性来建模相应的行为是不可能的:可以构建一个库,使您可以生成看起来像多态的行为,例如通过使用数组的函数指针。