可能重复:
你能用C编写面向对象的代码吗?
C中的面向对象模式?
我记得刚才读到有人(我认为是Linus Torvalds)谈论C++是一种可怕的语言,以及如何用C编写面向对象的程序.在有时间反思的时候,我真的不知道如何所有面向对象的概念都延续到了C.有些事情是相当明显的.例如:
sizeof参数(例如参数)执行一些voodoo你会如何模仿封装和继承?
我想通过使用存储私有成员的嵌套结构可以模拟封装.它可以相当容易地出现,但也许可以被命名PRIVATE或者同样明显的东西,以表明它不应该从结构外部使用.那继承怎么样?
有很多优秀的答案如何用C模拟面向对象的概念.仅举几例:
什么时候使用这种模拟是合适的,而不是本地使用支持面向对象技术的语言?
高度相关:
可能的重复:
你能用 C 编写面向对象的代码吗?
C中的面向对象编程
所以,据我所知,“对象”基本上只是值和方法的包装器。你不能在 C 中使用structs拥有相同的功能吗?Astruct看起来就像一个简单的class,但是,当然,它没有任何方法。在这里,我们触及了我的问题的核心:我根本不明白为什么需要方法。如果我们有一个只接受指向 a 实例的指针的外部函数,岂不是更简单、更节省内存struct?或者甚至让structs 指向这些函数,但这似乎纯粹是美学......