4

可能重复:
你能用 C 编写面向对象的代码吗?

嗨,有人可以指点我一个教程,解释我如何在 ANSI C 中实现 OOP 概念:

  • 虚函数
  • 遗产
  • 最佳实践

一本关于 OOP 编程 ANSI C 的书也会很棒。

4

4 回答 4

8
  1. Objective-C 不是 C - 它是一种不同的语言。
  2. C 不是面向对象的语言。可以做一些 OO 风格的东西,但这不是它的目的。
  3. C 中的最佳实践是程序性的。
于 2010-09-23T13:24:09.133 回答
6

这是有关该主题的书的链接: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 方式编程,并且具有可移植性!

于 2010-09-23T13:28:15.130 回答
4

我建议查看GTK+ GUI 工具包的内部结构。这是一个用 C 语言编写的面向对象的系统,展示了您所追求的技术。它是开源的,所以没有什么能阻止你阅读和学习。

于 2010-09-23T13:28:20.713 回答
1

面向对象的机制没有被定义为 C 语言的特性。您必须通过在 C 的过程性质之上添加自己的逻辑来模拟面向对象。

我不建议在 C 中应用 OOP 的所有方面。虽然封装相对容易实现,但在不是为此而设计的语言中实现继承会非常难看。

一个很好的教程:http ://www.planetpdf.com/codecuts/pdfs/ooc.pdf

于 2010-09-23T13:29:01.367 回答