gpt4 book ai didi

c++ - 如何将 C++ 中的虚函数/基类转换为 C 编程?

转载 作者:行者123 更新时间:2023-11-30 17:32:00 25 4
gpt4 key购买 nike

我有包含虚拟函数/虚拟基类的 CPP 文件。我想将其转换为 C 文件[虽然不是一个好主意,但我的讲师希望将其转换]。谁能告诉我如何做到这一点? C 中是否有任何特定的库可以提供与 C++ 虚拟函数/基类等效的东西?

最佳答案

我认为这个想法是通过能够编写执行相同操作的原始代码来向老师展示您了解虚拟函数的作用以及它们如何工作。

显式翻译是添加一个指向函数的指针作为结构体的字段,这意味着您可以在 C 中使用成员调用语法!我在 SD-89 软件开发 session 上演示了这一点,并得到了很多反馈,他们不知道你可以用 C 来做这些事情。

我确信您可以弄清楚如何将指针设置为不同的函数来指定每个实例的行为。在您充分理解之前不要继续。

要像 C++ 通常那样完全实现虚拟函数,只需将单个指针添加到结构中,并且它指向此类间接指针的列表。用手做起来很痛苦,因为它们都是不同的签名。一旦掌握了这样做的窍门(在较低级别的代码中实现 C++ 功能)并思考所涉及的对象模型,您应该能够弄清楚虚拟基类是如何工作的。 Strustrup 的 C++ 书籍大致解释了它们的工作原理。查看类的任何图表,看看是否能提供灵感,思考如何“编写它”,而不是接受这是 C++ 类的语义。

—约翰

关于c++ - 如何将 C++ 中的虚函数/基类转换为 C 编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com