问在 C 语言中是否有模拟面向对象编程(OOP)式继承或其他 OOP 特征的良好方法?
答通过在结构体中放置函数指针,可以轻松实现简单的“方法”。你可以通过预处理器或让结构体包含作为初始子集的“基本类型”,来进行各种笨拙、粗暴的继承尝试,但它不会是完美的。显然没有运算符重载,而覆盖(即“派生类”中的“方法”覆盖)必须手动完成。
显然,如果你需要“真正的”OOP,你应该使用支持它的语言,例如 C++。
附加链接:James Hu 的一篇文章,更详细地探讨了一些可能性。
由 托管