C中的面向对象模式?

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

我正在用C语言编写一个大型应用程序并且听说过C ++程序员出现之前用于在C中实现“面向对象”模式。我的问题是这个模式通常的forms是什么? 以及如何在现代C应用程序中实现这样的OOP模式?

在C ++对象具有方法的情况下,对象样式“C”采用充满函数指针的结构。 与成员函数对应的函数具有显式数据参数,该参数取代隐含的“this”指针。

子类使用相同类型的函数指针结构,使用不同的函数指针来指示重写的方法。

以下是面向对象C指南的一些有用链接:

  • 面向对象的C编程 – 一个非常彻底的主题处理。
  • 菲尔的面向对象C指南 – 这是一个相当简单的方法,主题,imo。
  • GObject参考手册 – GObject在Gnome和GTK +应用程序中大量使用(主要在Linux上),因此在现实世界中提供了面向对象C的完整示例。

我过去只是为结构和相关的“方法”采用命名约定。 每个方法都以候选对象的CANDIDATE_开头,并与typedef CANDIDATE {…}相关联,并且在Candidate.c文件中。

来自为C编写几个OO框架的人的另一个链接 。