下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C, C+, C#三者区别继承关系是C->C+->C#C+完全向C兼容,C程序几乎不用修改即可在 C+的编译器上运行.C+ 也称为带类的C,在C的基础上增加了许多面向对象的概念.虽然是C的扩展,但并不意味着C功能 不如C+,最牛的操作系统是用C写的(不是C+哦).C#是微软弄的一个东东,继承了 C和C+的许多东西,但和两者基本上已完全不一样了 .你可以把它 当作一种全新的语言来学C语言是一种结构化编程语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结 构。它还可以直接访问内存的物理地
2、址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程 操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。止匕外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算 机上,从而形成了多种版本的C语言。下面是C语言教程的地址,想学的话可以去看看。C+是在C的基础上改进后的一种编程语言,主要是增添了许多新的功能,难度也比C大,和C一样侧重于计算机底层操作,也就是系统软件的开发。C#是在C+的基础上再一次改进后的编程语言,相比C+而言难度有所减小(微软是这么说的),侧重于网络和数据库编程。这 3种都是 编程语言,语法基本上是一样
3、的,不过具体的内容差别还是挺大的。VC+是一种编程软件,就相当于一个作业本,你学习了 C+语言以后,就需要把这种编程语言写 在一个作业本上,也就是写在 VC这种编程软件上,来实现你需要的效果。C+是C语言的升级版c是C+的子集,c是面向过程的,C+是面向对象的C语言与C+的区别有很多:1,全新的程序程序思维,C语言是面向过程的,而C+是面向对象的。2, C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而 C+对于 大多数的函数都是有集成的很紧密,特别是 C语言中没有的C+中的API是对Window系统的大 多数API有机的组合,是一个集体。但你也可能单独调用 API。3
4、,特别是C+中的图形处理,它和语言的图形有很大的区别。C语言中的图形处理函数基本上是不能用在中C+中的。C语言标准中不包括图形处理。4, C和C+中都有结构的概念,但是在 C语言中结构只有成员变量,而没成员方法,而在 C+ 中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在 VC+中它没有加限定符的为私有的。4, C语言可以写很多方面的程序,但是 C+可以写得更多更好,C+可以写基于DOSr程序,写 DLL,写控件,写系统。5, C语言对程序的文件的组织是松散的,几乎是全要程序处理;而C+对文件的组织是以工程,各文件分类明确。6, C+
5、中的IDE很智能,和VB一样,有的功能可能比 VB还强。7, C+对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入 MFC中的类的时候,加入变量的时候等等。8, C+中的附加工具也有很多,可以进行系统的分析,可以查看 API;可以查看控件。9,调试功能强大,并且方法多样。鉴于当下形势,如果要学的话就学 C#C#与C+比较的话,最重要的特性就是 C#是一种完全面向对象的语言,而 C+不是,另外C#是 基于IL中间语言和.NETFrameworkCLR 的,在可移植性,可维护性和强壮性都比 C+有很大的改C#的设计目标是用来开发快速稳定可扩展的应用程序, 当然也可以通过I
6、nterop和Pinvoke完成一 些底层操作,但是对于一些和底层系统相关很紧密的程序(譬如说驱动程序),还是建议用C+来写x' . I / 产, cC+不允许在一个构造函数中调用另外一个构造函数(称为委派构造函数调用),而C#则允许。委派构造函数调用语法上非常自然和易懂,事实上,C+不提供这一特性并不是出于语法上的考虑, 而是出于资源管理的考虑(这样的事情对 C+来说还有很多很多)。C+的构造函数用于分配资源,而析构函数用于释放资源,构造函数和析构函数调用必须匹配,否则就打破了 C+的基本规则。如果允许委派构造函数调用,则显然会打破这一规则一一构造函数被执行两次,而析构函数只执行一次
7、。当然,对一些类,例如前面的那个Point来说这不是个问题, 但是从语言机制的角度讲这个特性可能属于 危险”的特性。注:在最新的C+标准提议草案中, Herb等人有一个关于允许委派构造函数调用的提案, 当然这很大程度上是为了方便 C+/CLI绑定。在C+构造函数中,虚函数调用会被编译器自动转为普通函数调用,而在C#构造函数中允许进行虚函数调用。C+这样处理自然有它的原因 一一在C+中,构造函数执行完成后对象才初始化好, 对于多态对象来说,也就意味着构造函数在背后执行了很重要的一件事情一一初始化对象的虚函数如果我们在基类的构造函数中调用了虚函数,则因为此时对象的虚函数表仍旧是基类的虚函数表, 所
8、以无法进行正确的虚函数调用。也就是这个原因,通常我们应该避免在构造函数中调用虚函数,因为它违背了虚函数的语义。而在C#中,在对象的构造函数执行之前对象的类型信息就已经初始化好了,所以可以进行正常的 虚函数调用。基本上,这些就是两者之间的区别。C与C+的区别C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的 是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制), 而对于C+,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这 样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C+的最大
9、区别在于它们的用于解决问题的思想方法不一样。 之所以说C+比C更先进, 是因为 设计这个概念已经被融入到 C+之中”,而就语言本身而言,在 C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。 而且,“C加上好的设计”也能写出非常好的东西。对语言本身而言,C是C+的子集,那么是什么样的一个子集?从上文可以看出, C实现了 C+ 中过程化控制及其它相关功能,而在 C+中的C (我称它为“C ,相对于原来的C还有所加强, 引入了重载、内联函数、异常处理等等玩艺儿,C+更是拓展了面向对象设计的内容,如类、继承、 虚函数、模板和包容器类等等。再
10、提高一点,在C+中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对 象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。所以相对于C, C+包含了更丰富的 设计”的概念,但C是C+的一个自洽子集,也具有强大的功 能,同样值得学习。几点学习建议:1 .基本概念很重要。无论学 C,还是学C+,基本概念都是第一位的,也是比较困难的,但只有 把握了基本概念才能把握整体脉络,才能居高临下。2 . C是C+的子集,它的基本概念和设计方法相对比较容易理解,初学者可从它入手。3 .如果要学好C+,建议初学者最好别在如 VC, BCB平台下写程序,那种自动化的代码生成, 花花绿绿的界面
11、,会让你手足无措。最好先找一片空地( unix, dos),从头做起,写几个大点的 程序,数个回合,再到VC, BCB下看看,你会轻松得很。在我看来,学好C/C+是成为VC, BCB 高手的必由之路。4 .不要妄想速成,必须得一个 byte, 一个bit的去抠,尽量搞清楚每一个问题。5 .几本好书:i ;机械工业出版社的那套 计算机科学丛书”从C到C+,到面向对象设计,一应俱全,都 TMD是经 典中的经典,而且价格公道,童叟无欺。国内也有几本好书,谭老爷子的书好倒是好,就是程序错误太多。强烈推荐清华周之英的现代软件工程(上、中、下),它是我所见到的国内少有的一本好书,精华的精华,要点的要点,细
12、细 品来,至少也属降龙十八掌等级的东东。如果还是有人想学习C/C+的话,有一些小问题我还是乐意解答的.但是我认为学习C/C+是不重 要的,重要的是如何锻炼你的思路.不要找一些连自己都搞不清的问题去做.我认为虽然"潭浩强"同志有骗钱的嫌疑(我手头就有一本几乎一模一样的英文书),但是,是他把这本 入门手册引入中国,使无数程序员了解了 C语言,我想他的功劳也是不可磨灭的.在C语言程序设 计这本书中所有的例子都可以用做锻炼思路的基石,他对大家的编程是很有帮助的.我认为是值得 一买的.去思考课后的例子对你的编程很有帮助.不要小看一个一个简单的例子,他们是你通往成功 的道路.当你基本能
13、够掌握了上一本书中例子后,你就要自己找一些例子程序去看.开始可能是看不懂,但是 只要努力就没有什么问题.当你看过几个较大的例子之后,你会茅塞顿开,(大量阅读例子程序是学习 C/C+的捷径).你会发现,你的水平有了显着的提高.你看的例子越多,你对Windows/DOS 了解的越 多.最好能够再看一些关于系统知识的书籍.他会对你的编程很有帮助的.这是我学习C/C+的一点心得,希望对没有被我吓到而要继续学习 C/C+的朋友们有一些帮助.免 得有些同志说我破坏中国软件人才的发展.在最后我祝愿所有坚持学习 C/C+的朋友们成功!同时感谢阅读过我文章的同志们想学好C+ ,非学C不可! ! !今天我这么肯定
14、的在这里讲这番话, 是不想初学者陷入到语言越新越好的误区, 本来这个题目就不 是很严谨,但是我有几句话必须讲讲,为 C平反!C+与C有什么不同呢?我们现在一步步地来分析一下一、类,类我并不说它有什么不好,但是对于初学者,它是一个累赘。类的封装使得初学者对程序 产生厌倦,感到不适和麻烦。二、引用,引用是C+中最臭屁的东西了,最好尽量不要用它,我就是从来不用引用,除非万不 得已。引用对于初学者就更容易产生混淆,不知道哪个是引用,哪个是变量。三、函数的重载,初学者学函数的重载好像没什么坏处,但是,这会使初学者潜意识里对 C语言 的变量类型的重要性产生淡化,要记住 C语言是对变量类型最敏感了的,变量的
15、类型在 C语言里 的重要性是不言而喻的。四、流操作符,和上面同样的道理,使得对变量类型的重要性产生淡化,况且, cin这个东东有点 儿不怎么方便,有时会产生使初学者莫名其妙的结果。五、操作符重载,典型的高级应用,初学者可能根本用不着,这个东东会让他们觉得C+很难,门槛高,看不懂。六、继承,以及虚函数,典型的模仿四不象,这种狗屁东西除了看起来深奥,实用价值很低。我怎么可能把某个类的类型的指针去指向另一个不同类型但是是继承关系的类,来实现什么动态联编,晕 还有些东东我就不发表评论了,如:new,delete操作符等七、误区:以问答形式:问:C+是面向对象化的而C是面向过程化的?. .'答:
16、第二对,第一问错,C+并非完全面向对象化,真正的面向对象化的语言恐怕只有Java才算得上。 . . I / 产问:C+能实现C所不能的功能吗?1. X - -1 - - _答:至少我还没有发现 问:学了 C再学C+有障碍吗?比如程序设计思想 «I F-答:至少我还没有看见谁有此症状。问:学了 C再学C+又要重头开始吗?答:不,C+下可以实现C语言的一切功能。问:我学完了 C 一定还要学C+才能编程吗?答:完全没必要。 S I 1问:C+比C好在哪里?答:更加符合软件工程学问:学完了 C再学C+是不是很容易?答:那要看你是不是真正的学完了 C语言,我从C到C+就一个星期的睡觉前的时间看
17、两眼书, 然后就大彻大悟。再跑到这里来发表些狗屁文章了。最近在网上看到了很多人的学习方法, 本人非常不赞同。很多人都想一口吃个胖子,要学就想学最 新的,好象没有人愿意再去学那些老的,旧的编程语言了。但你们能学的懂吗?不学 TC2。0等那些较早的优秀编程语言,你们能理解的了 VC6。0?如果你真的能,我宁愿做你的徒弟!真是奇怪,那些最基本的语言都不懂的人,怎么可能去理解那些最新的编程语言?我学编程有三年了吧。成绩也不算多,只有一个计算机四级证和一个高程证, 但我觉得我在学VC的时候还有很多的不明白的 地方。没有人来教我,只能靠我自己,包括所有的成绩在内,我都是靠自己,我从不报班。学 VC 的半年多来,我想我已经基本入门,但依然有很多的困惑。刚开始学 VC,就面临一个项目,我真 的犹如笨蛋一般,四处吓摸,毫无头绪,最后勉勉强强才算做个差不多。学好 VC再去学其他的高 级WINDOWS编程,我想那真是轻而易举,毕竟WINDOWS的内部的很多东西都能直接被 VC调 用,你首先就可以对 WINDOWS有个全新的认识,再去学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省榆林市绥德2026届初三物理试题第二次检测试题理含解析
- 河北省邯郸武安市2026届初三下第一次月考语文试题理试题含解析
- 山东省济南高新区四校联考2026年初三4月第二次调研测试英语试题含解析
- 浙江省杭州市萧山区城区片六校2025-2026学年初三下学期月考(一)化学试题试卷含解析
- 土地合同模板
- 汽修厂劳动合同
- 第二单元 世界舞台上的中国
- 2026年装饰装修工程流水施工方案
- 2026年医护人员心肺复苏复训总结报告
- 2026年无人机适航审定与检测中心投资方案
- DB31∕T 1487-2024 国际医疗服务规范
- 工程标杆管理办法细则
- 计算机等级考试二级wps题库100道及答案
- DB31/T 5000-2012住宅装饰装修服务规范
- 钢结构预拼装方案及标准
- 马工程西方经济学(精要本第三版)教案
- 【初中 语文】第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- GenAI教育在不同场景下的应用案例分析与演进路径
- GB/T 44815-2024激光器和激光相关设备激光束偏振特性测量方法
- 某爱琴海购物中心开业预热推广方案
- 口腔颌面部肿瘤-血管瘤与脉管畸形的诊疗
评论
0/150
提交评论