社区
C语言
帖子详情
如何用C语言实现面向对象设计?
cathy97
2004-08-18 10:17:11
本人作embeded system,由于项目需要,将一个用c++实现的东西,改成c来实现,但系统设计不变,就是说面向对象的结构不变,而是使用c的高效率和size较小等优势,在embeded system中很看重这一点,这可就苦了俺了,c++中强大的标准库不能用不说,c++的面向对象的概念如何用c语言来实现,如类,继承,多态,模板等该如何做。那位有这方面的经验,可否指教一二,先谢了!
...全文
501
25
打赏
收藏
如何用C语言实现面向对象设计?
本人作embeded system,由于项目需要,将一个用c++实现的东西,改成c来实现,但系统设计不变,就是说面向对象的结构不变,而是使用c的高效率和size较小等优势,在embeded system中很看重这一点,这可就苦了俺了,c++中强大的标准库不能用不说,c++的面向对象的概念如何用c语言来实现,如类,继承,多态,模板等该如何做。那位有这方面的经验,可否指教一二,先谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
白杨_baiy-cn
2004-08-20
打赏
举报
回复
//=============================================================================
先仔细考虑考虑是否需要改写,事实上C++的效率还是蛮高的。改写成C后效率的提高不会太大。
//=============================================================================
同意,用C实现C++很难达到编译器实现的效率
starluck
2004-08-19
打赏
举报
回复
太难了,不懂。学习中
loveyou19840806
2004-08-19
打赏
举报
回复
可以做到一定程度的封装,你把那些要用的数据放到一个结构体中,然后再在里面加些函数指针,就可以做到了。不过这样做是不能实现RTTI了
sharkhuang
2004-08-19
打赏
举报
回复
stuck
加函数指针.
但是继承的RTTI不行的
021850524
2004-08-19
打赏
举报
回复
你实在不行就看看linux下的gtk(c库),它用c写的,还实现了继承.
http://www.gtk.org
021850524
2004-08-19
打赏
举报
回复
int _T_(int x, int y)
{...}
typedef struct _T
{
int a,b;
int (*p)(int x, int y);
}T;
然后想办法让p指向_T_函数,然后就可以
int main()
{
T t;
t.p(3, 4);
...
}
//Linux下的c程序库有这样的用法.
jp1984
2004-08-19
打赏
举报
回复
干吗不用C++啊 。
PhoenixWaVe
2004-08-19
打赏
举报
回复
我曾读到这样一段话:(大意)
“ C语言也可以实现一定程度的封装,用结构体包含数据和“函数指针”,
就形成了一个“类” ”
不知对楼主有用否
至于继承和多态的模拟就不太清楚如何实现了
想出来了告诉我^-^
msdn_user
2004-08-19
打赏
举报
回复
用c实现一个c++
就可以实现面向对象了
singularity
2004-08-19
打赏
举报
回复
先仔细考虑考虑是否需要改写,事实上C++的效率还是蛮高的。改写成C后效率的提高不会太大。
demo001
2004-08-19
打赏
举报
回复
GZ
zjxiaoyu
2004-08-19
打赏
举报
回复
2003年程序员合订本赠送得光盘中中有本电子书,叫<<object oriented c programming>>,里面讲怎样用c实现面向对象编程,可以看一看。
baojiabao2003
2004-08-19
打赏
举报
回复
实际上结构体和类是很类似的,基本上类所能够完成的功能结构体也都能够实现,如果把c++中的类重新在c中改写成结构体的话,我想从程序角度是一样的了,但是这确实还是两种不同的思想
cawangjun
2004-08-19
打赏
举报
回复
c中,一个.c文件可以表示一个class,static关键字可以定义private变量和函数,.c文件里的全局变量和函数,可以作为public变量和public函数。
这只是概念上的,如果要从一个c++项目该成c的话,可能不是这么简单的。那就要借助其他工具了。
白杨_baiy-cn
2004-08-19
打赏
举报
回复
不好意思,推荐一下俺写的《C++编码规范与技术指导》,在:
http://community.csdn.net/Expert/TopicView1.asp?id=3288370
里面的“RTTI、虚函数和虚基类的开销分析及使用指导”详细分析了C++各种高级特性的开销和实现方式~
另外早期的C++编译器确实是先把C++转换成C的,Stroustrup写的那个就是。不过这种古董编译器缺乏很多特性的支持,记得玩过一个比较新的转换工具,就是专门针对你说的嵌入式应用滴,本来是个实验室开发的,后来被个公司买了版权要收费了,忘啦叫啥名字啦,刚才帮你找了半天也没找着,你自己上google找找吧~
Squall1009
2004-08-18
打赏
举报
回复
关注,找个最老的c++编译器,就是先把c++编译成C的那种
cathy97
2004-08-18
打赏
举报
回复
果然是好文章,不过还是欢迎大家继续讨论这个问题
积木
2004-08-18
打赏
举报
回复
不知道你看没有看最近的文档,那里面有几篇文章就是讲这个的
http://dev.csdn.net/article/29/29250.shtm
http://dev.csdn.net/article/29/29251.shtm
http://dev.csdn.net/article/29/29252.shtm
http://dev.csdn.net/article/29/29255.shtm
http://dev.csdn.net/article/29/29256.shtm
ddddh
2004-08-18
打赏
举报
回复
嗯,楼上的,确实是这样的。
最早的c++就是把C++翻译成c的。
可以看那本 《深度探索 C++ 物件模型》,讲了一点c++的历史。
对于楼主的问题,我没有什么可以参考的意见。抱歉!
zjxiaoyu
2004-08-18
打赏
举报
回复
楼上的,有这么神奇的东西吗?
c++编译成c???
加载更多回复(5)
C语言
实现
面向对象
思想编程
附件是在VS2012下用
C语言
实现
面向对象
的示例代码,并
实现
设计
模式中的工厂模式
用
C语言
实现
面向对象
编程
这是一个用
C语言
编写
面向对象
程序的软件开发平台,内附有标准版、简化版、编程实例及说明文档。提供全部源码! 对希望用
面向对象
的思想
设计
系统、用
C语言
实现
编码的嵌入式软件工作者,提供了一个极好的解决方案。
朱老师C++第2部分-2.1.会
C语言
就能学会
面向对象
涵盖了C++基础语法和使用,
面向对象
,STL与泛型,Boost库和
设计
模式,C++编程优化技巧等非常广泛的内容,是市面上非常缺少的深度完整学习C++,培养编程技能和修养的一套系列学习课程。整个课程预计2020年底前录制...
C语言
实现
面向对象
编程
面向对象
编程(OOP)并不是一种特定的语言或者工具,它只是一种
设计
方法、
设计
思想。它表现出来的三个最基本的特性就是封装、继承与多态。很多
面向对象
的编程语言已经包含这三个特性了,例如Smalltalk、C++、Java。但是你也可以用几乎所有的编程语言来
实现
面向对象
编程,例如ANSI-C。要记住,
面向对象
是一种思想,一种方法,不要太拘泥于编程语言。封装就是把数据和方法打包到一个类里面。其实
C语言
编程者应该都已经接触过了,C标准库中的fopen(),fclose(),fread(),fwrite()等函数的操作对象就是FILE。数据内容就是FILE,数据的读写操作就是fread()、fwrite(
C语言
69,367
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章