【发布时间】:2017-05-25 16:27:18
【问题描述】:
为了遵循准备好的设计文档,我想在 C 中创建虚拟函数。是否有任何最佳实践可以做到这一点? 正如@imreal 建议的那样,我们可以使用函数指针来转换 C 结构,其工作方式类似于 C++ 类,但我们如何确保虚拟基类函数覆盖派生类函数。
在我的情况下,我需要此功能来遵循文档,但我认为当我们将 C++ 代码转换为 C 时,它也很有用。在将 C++ 代码与 C 代码结合时,这是必需的。
【问题讨论】:
-
C 中虚函数的用途是什么?
-
您可以修改设计文件。
-
用函数指针创建一个结构体,编写一个函数作为构造函数来为这些指针分配不同的函数。每个函数都需要一个 self/this 指针才能访问数据成员。
-
你的意思是虚拟方法? C 没有方法;它甚至没有课程!
-
使用object system(这就像回答“使用C++”但不同!)。如果没有对象系统,这个问题就没有任何意义——你发现赋予它意义的任何方式都意味着你定义了自己的对象系统,而不是使用现有的库或语言的系统。