C模拟面向对象的方法
-
抽象数据类型
让客户使用指向没有公开定义 (也许还隐藏在类型定义后边) 的结构类型的指针是一个好办法。只要不访问结构成员, 声明和使用 “匿名” 结构指针 (不完全结构类型指针)是合法的。这也是使用抽象数据类型的原因。 -
类的方法
把函数指针直接加入到结构中。 -
继承
你可以使用各种不雅而暴力的方法来实现继承, 例如通过预处理器或含有 “基类” 的结构作为开始的子集, 但这些方法都不完美。很明显, 也没有运算符的重载和覆盖(例如, “导出类”中的 “方法”), 那些必须人工去做。 -
还有哪些呢?