可能重复:
你能用 C 编写面向对象的代码吗?
嗨,有人可以指点我一个教程,解释我如何在 ANSI C 中实现 OOP 概念:
- 虚函数
- 遗产
- 最佳实践
一本关于 OOP 编程 ANSI C 的书也会很棒。
可能重复:
你能用 C 编写面向对象的代码吗?
嗨,有人可以指点我一个教程,解释我如何在 ANSI C 中实现 OOP 概念:
一本关于 OOP 编程 ANSI C 的书也会很棒。
这是有关该主题的书的链接:http ://www.planetpdf.com/codecuts/pdfs/ooc.pdf(Ansi-C 中的面向对象编程 - 正是您正在寻找的内容)。
祝你好运,有耐心。用 C 编写 OOP 不是一件容易的事,但如果你喜欢极端的东西,可能会有些收获!
另一个起点是检查 GObject:http ://library.gnome.org/devel/gobject/ 并且正如@unwind 所说,GTK是如何在 C 中使用 OOP 概念的一个很好的例子。你也可以在GLib上学习,是一个不错的库,它肯定会让您的 C 编程生活更轻松,它以 OOP 方式编程,并且具有可移植性!
我建议查看GTK+ GUI 工具包的内部结构。这是一个用 C 语言编写的面向对象的系统,展示了您所追求的技术。它是开源的,所以没有什么能阻止你阅读和学习。
面向对象的机制没有被定义为 C 语言的特性。您必须通过在 C 的过程性质之上添加自己的逻辑来模拟面向对象。
我不建议在 C 中应用 OOP 的所有方面。虽然封装相对容易实现,但在不是为此而设计的语言中实现继承会非常难看。