我做OOP (C++/Java/PHP/Ruby)已经很长时间了,我真的很难想象像Linux或Apache这样的大型程序和库可以完全以命令式的方式编写。小型开源C项目是什么,我可以看看它是如何在C中完成的?
如果项目托管在GitHub上,则奖励积分。
发布于 2011-02-19 08:40:44
在C语言中,做事情的方式完全相同,但语言对它的支持却不那么明显。不是创建一个类来封装某种状态,而是创建一个结构。不使用隐式参数创建类成员,而是创建函数,显式传递一个struct*作为第一个参数,然后对结构进行操作。
为了确保封装不中断,您可以在头中声明结构,但只能在使用它的.c文件中定义它。虚拟函数需要更多的工作--但这只是在结构中放置函数指针的情况。在C中,这实际上比C++更方便,因为在C中,您可以手动填写vtable,对代码的哪一部分实现什么COM接口的部分(当然是C中的COM )有相当好的控制。
发布于 2011-02-19 09:02:12
https://stackoverflow.com/questions/5051887
复制