社区
C++ 语言
帖子详情
C和C++的区别什么,将一个C程序改写成C++时需要注意什么呢?
xeonfeng
2006-09-23 11:04:53
如题。
C和C++的区别什么,将一个C 程序改写成C++时需要注意什么呢?
...全文
1717
45
打赏
收藏
C和C++的区别什么,将一个C程序改写成C++时需要注意什么呢?
如题。 C和C++的区别什么,将一个C 程序改写成C++时需要注意什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
45 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
genius_hb
2006-10-09
打赏
举报
回复
注意函数声明,原形就差不多了
xuejinn
2006-10-08
打赏
举报
回复
mark
solarhe
2006-10-07
打赏
举报
回复
C与C++我个人认为只是编程思想的差别(也可以说思维方式的差别)。
本质上讲C++能做到的C也同样能做到,C能做到的C++也同样能做到。
差别在于编译器做的多少!
C++诱惑人的地方我觉得不是它的封装性,你可以约定所有结构体的成员
变量必须通过函数来访问(而不是直接访问它)。比如
struct xxx
{
int member1;
.
.
.
}
fun1(xxx* p, ...);
C++ 也是这样做的,在所有的类成员函数的形参列表中加入了this指针,
唯一的区别是编译器帮你完成了。
虚函数同样也是把你该做的事情交给了编译器。
所以我有一个感觉,就是一旦你理解了C++你就变的很懒撒,不愿在重新
使用C,原因不是C++会生成更好的代码,而是我们可以写较少的代码。
C++诱惑人的地方是它的代码的重用性,和多态。虽然这些都可以通过C实现。
但是我们愿意当一些做菜的人,而不是种菜的人。
不过我想告诉大家种菜是一种享受,而且买的菜不一定都新鲜好吃!
Dugowe
2006-10-07
打赏
举报
回复
楼上的请注意..面向对象方法....
最后两个字 : 方法
c当然可以写...
或许你觉得不顺眼,但用c写就是那样,两种不同的语言难道写东西会一样吗
yin0731
2006-10-07
打赏
举报
回复
学习..........
xeonfeng
2006-10-06
打赏
举报
回复
呵呵,好呀,还有没有对此有见解的朋友
tongqiwenwujun
2006-10-06
打赏
举报
回复
c也能够写面向对象的程序吗?
我算是大开眼界了!!!
onemonth
2006-09-25
打赏
举报
回复
对应c程序的每一行代码,c++的每一行代码需要在后面加上"++"两个符号。其他完全相同。
erpproxp
2006-09-25
打赏
举报
回复
看来懂C++未必懂C
周江涛
2006-09-25
打赏
举报
回复
还是楼上说的最实在。
hyg2008
2006-09-24
打赏
举报
回复
to proware(www.liutao.org)
还没看就知道你会用private来说事,如果你真的很需要C++提供的功能,那还是用C++好了。
我只从应用的角度来说,C能做面向对象。
因为系统资源的限制,有时候不益用C++,只好用C来模拟对象。
至于那个private,我认为可有可无,不过是编译器在编译阶段对程序员的限制罢了,
我要想在外部访问它也是可以做到的。
mu_yang
2006-09-24
打赏
举报
回复
大师们对语言的理解是不同的
c的精神是信任程序员
c++则不是
从这个角度讲
如果c的"对象"作不到private
如果不是可以理解的那么至少应该是可以容忍的
hyg2008
2006-09-24
打赏
举报
回复
其实争论这个是没有意义的
一定要有private才叫封装?我看未必!
有时间看看《C语言嵌入式系统编程修炼之道》,关于菜单操作的实现。
其中说到“在这一节里,我们将看到,在C语言中哪怕用到一丁点的面向对象思想,
软件结构将会有何等的改观!”
我们要的只是用在C中利用面向对象的优点,并不是要去替代C++,这也是不可能的!
baidu/google一下"C 面向对象",有一大堆文章,慢慢看吧。
既然我说了是模拟,那只是模拟!肯定有和C++不完全一样的地方,你要挑毛病那可以尽情的挑。
e_ville
2006-09-24
打赏
举报
回复
我大致知道以下几点:
1. 输入输出用:cin和cout,而不是用prinft()和scanf()
2. 申请和释放动态内存用new和delete,而不是用malloc和free
3. 类型转换用static_cast<int>(4.5),而不是用(int)4.5,当然后者现在也可以。
4. 还有头文件:C++里用<ctime>,<cstdlib>,<cstring>,<cstdarg>,<cstdio>等等来代替C里面的<time.h>,<stdlib.h>,<string.h>,<stdarg.h>,<stdio.h>,反正就是C里面的头文件前面加个字母c,同时不要扩展名,并且放到名空间std中。
5. 暂时没想到
mu_yang
2006-09-24
打赏
举报
回复
面向对象,是一种编程思想
面向过程,是另一种编程思想
这只是在源代码的层次上
但在机器码的层面
我认为两者没有本质的区别
只不过前者的实现比较困难
需要编译器多做些事情罢了
JianGeYa
2006-09-24
打赏
举报
回复
看一遍C++的书,然后照着编点,一下就会了,至少形式上,这里的人没人说得全,估计
Bjarne Stroustrup也不一定行
飞哥
2006-09-24
打赏
举报
回复
C面向对象? 是说用结构体封装方法????
这个不妥,似乎C编译器也不支持
值类型与引用类型
结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,通过使用结构可以创建更多的值类型
类是引用类型:引用类型在堆上分配地址
不过还有有类的C,另说
proware
2006-09-24
打赏
举报
回复
to hyg2008(蓝色雨)
哈哈。。。
我认为要写面向对象的程序,首先要封装吧,而封装需要把一些属性私有化吧,怎么会说private可有可无呢。。那封装了还有什么意义呢?随便是个函数就能访问对象的私有东西。。
xeonfeng
2006-09-24
打赏
举报
回复
C++应该是兼容C的,我主要是想知道其区别?
把一个C写的代码改写成C++的代码,主要想知道改那些地方能表现出C++的独有特性?!
liuhelin
2006-09-24
打赏
举报
回复
楼主问的好,c的程序语法上也可不需要改变直接在c++下用啊,不过c++和c还是有本质区别啊
加载更多回复(25)
本人
改写
的C语言解释器
C++
类
C++
脚本解释器支持的运算符包括:赋值运算符、算术运算符、关系运算符、逻辑运算符;
C++
脚本解释器应支持以下的结构:顺序结构、选择结构、循环结构; 如:if/else switch while for等
用
C++
创建简单的 Win32 服务
程序
创建该服务仅用到
一个
C++
类,这个类提供服务与操作系统之间
一个
简单的接口。使用这个类实现自己的服务非常简单,只要
改写
少数几个基类中的虚拟函数即可。文中有三个源代码参考例子:这是其中之一—— NTService:...
《C语言/
C++
学习指南》语法篇(从入门到精通)
一门初级、从入门到精通的C语言...从简单的HelloWorld入门
程序
,到深入的C语言
C++
核心概念,均为您娓娓道来,言之必详、听之必懂。让C语言
C++
编程变得简单,让C语言
C++
编程变得有趣,让喜欢C语言
C++
的人学会C语言
C++
!
用
C++
创建简单的 Win32 服务
程序
ntservicectrl.rar
创建该服务仅用到
一个
C++
类,这个类提供服务与操作系统之间
一个
简单的接口。使用这个类实现自己的服务非常简单,只要
改写
少数几个基类中的虚拟函数即可。在本文有三个源代码参考例子: NTService 是
一个
简单的 ...
C语言全套资料 C语言
程序
设计 C语言算法 C语言课件 C语言顺序
程序
设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构
程序
设计,C语言结构体与共用体,C语言文件操作,C语言函数
C语言全套资料 C语言
程序
设计 C语言算法 C语言课件 C语言顺序
程序
设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构
程序
设计,C语言结构体与共用体,C语言文件操作,C语言函数
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章