当前位置:编程学习 > 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#与.NET
与C#一样.NET也是微软件独家的东西, .NET是微软件的一个平台,是微软的下一步战略,.NET是一非常大的战略,里面包含着非常非常多的东西,是一个远景目标,微软构架出来的一个未来框架,一个模糊面有庞大的框架,以后所有的东西都是.NET,包括家电,手机,等所有人类身边的长智能设备通过网络连接成一个有机体,成为.NET.它到底是什么,比尔盖茨目前自己也说不清楚,说得都是含糊其词,曾经有很多要在学.NET之前想弄清概念都失败了,其实他就是一个微软未来对的发展框架和,未来软件体的框架,而目前正在实现这一目标,
作为.NET的的核心编程语言就是C#,也就是说微软件发展的C#语言是为了专为.NET服务的,C#是专门编写.NET软件的语言,
在.NET初期,也就是我们现在用的.NET技术,其实和普通的编译没有什么两样,只是在WINDOWS开发环境上需要额外地装上.NET的类库,以扩充功能,增加.NET API调用,说浅点就是增加一些函数一样,.NET的程序最底层就是调用这些.NET API实现功能的,这个类库被称为Framework软件扩充包,在微软主页下载后安装就可以用运行.NET软件了,如果是WIN2003,不用装,系统本来就自带了类库的,所以现在看来C#是调用Framework的语言.
再说VB,VB也是微软的开发工具,VB语法源于以后的BASIC上改进来来,BASIC本来就是基本的意思,所以BASIC一直是最简单的软件开发语言,那时候几乎所以学软件开发的人都从BASIC学起,但是,BASIC基本上是一种教学语言,在实际开发上很少用,因为过于简单,只是一种引人入门的工具,进入WINDOWS操作系统时代后,微软改进扩充了原来BASIC语言,成为开发WINDOWS的语言,可视化的 BASIC简单称VB,VB有着极简单的语法,和结构,使人用VB入门非常的快,快是基于这一点,VB在功能复杂的大型项目地方基本上没法使用,这是VB的历史,还有VB的应用平台是WIN32系统,非.NET系统,也就是说VB跟VC是同级的平台开发工具,VB开发的程序在.NET上无法运行,也就VB跟C#不能比了,因为他们运行在不同平台上;还有就是后来的VB.NET,也是VB扩展到.NET平台上使用,但是这就有一个非常严肃的问题,当人们进入.NET时代后,照微软的说法,在.NET世界里,已经没有了语言为大时代,全部都是.NET,实际上VB.NET和VB已经改得面目全非,已经不是昨日的VB,基本上VB的程序员在.NET已经被抛弃了
总结的说VB和C#在技术上没有可比性,因为不是属于一个比台,那要比就比较WIN32和.NET的比较, 要么比就是VB语法与C系列语法的比较
还有,基本上所有的人都认为.NET的出现是为了跟JAV A竟争,这也不可否认,JAVA最近,热得汤手,微软早就看重了这个竟争对手,搞出.NET与其争市场,至于与JAVA争什么,那就各有看法,JAVA是95年出生的,带着美好的前景,诞生,但是在长达十几年的时间里,它几乎没什么出息,整天就是自吹自擂的夸平台性,等等.但是一直被人认为是鸡肋,直到近几年才火起来,但是与JAVA同期出生的技术,比如FLASH等,已经早已成功的技术应用,JAVA为什么突然变热,有人认为JAVA发展到今天,已经非常庞大了,家族大得成一个帝国一样,分类多,特别是J2EE应用,注重软件构架设计,复合了未来软件开发的方向,还因为索取JAVA原始开发包是免费的,还一部分人人为JAVA是炒作的结果,都是世界级的大IT集团在炒,本来从纯技术上来说JAVA的技术谈不是什么多大的进步,但是炒的人多了就热了,如果是这样,那么再发展下去,JAVA依然不会有进步,直会一步步走向畸形,但是世界上那么多的IT集团,比如IBM等为什么要炒JAVA,一个比较直观的观点认为这是世界IT巨头需要寻找一种跟微软抗怛的东西,这点无疑JAVA最合适的人选.不管怎么说JAVA已经活了,我们就必须面临程序员的选择,我们目前作的方向是C#与JAVA的选择,而不是C#与VB的选择
但要补充一句的是,不管是C#还是JAVA,他们应用的思想,技术,是多么的相像,特别是对开发人员角度看,除了所需要的平台不一样,基本上,那些语法,和思想太像了,如出一辙,这是为什么呢,原来不管是C#还是JAVA,他们的技术思想都源于DELPHI,大多数主要技术是从DELPHI发展上来的,或者是盗版过来的,DELPHI是Borland公司的WIN32开发工具,曾是人类所用最高效快速强大的开发工具,它里面首先用用了很多新技术,后被C#等应用,但悲惨的是Borland公司是拥有世界上最先进的技术人员和最糟糕的管理人员的公司,由于管理者经营不善,正在面临生死关头,而开发DELPHI的主要技术人员,包括DELPHI的主工程师都被微软高薪挖走去设计C#,所以在用过DELPHI的人眼中,C#,DELPHI其实就是一个妈妈生的两个孩子,
#是用来做应用程序和软件的,优点就是快速开发,有功能强大的.NET FRAMEWORK的支持. 
而C/C++是用来做系统程序的,(也能做应用软件,但没有C#方便),优点很多,比其它的高级语言更容易对内存,以及作系统底层相关的开发,比起汇编语言,它具有良好的可移植性.
就看你是想发展哪方面了,还有一点不得不说,C#主要在microsoft Visual stdio.net下得以应用,目前不能在linux以及其它的操作系统下用(因为据我所知C#编译器只是在集成在.NET环境下有,其它的没有听说过),而且microsoft开发出来.net时说.net会牛十年,所以那个时候C#可能就不像现在这样作为市场上的主流开发语言了,它的结果如何谁也不知道,但是C/C++是纯粹就是一门计算机高级编程语言(其实它应该是介于汇编语言和高级语言之间的计算机编程语言),它没有局限在任何的OS,编译器,再加上其它强大的开发能力,是不会被淘汰的,计算机编程语言发展的规则是向更高级,易开发,更方便的方向发展的,不会再发展出一个像C一样的系统底层开发语言,所以学好C/C++还是很必要的,但如果你不想做这些系统底层开发工作,也就不用对C进行太深入地研究了,在编程方面应该对算法以及数据结构进行深入学习.
现在的高级语言如C#,主要把它的语法,也就是编程方法学会,然后对其编程机制进行一些学习就够了,重要的是其它的东西,如学C#更重要是的对.NET FRAMEWORK机制的了解,大部分的高级语言(C/C++/JAVA例外)就是这样,其实并不是特别特别重要,关键是编程思想
什么东西啊?
语言只是一个工具而已 主要的是自己的编程思想 编程工具很容易上手的。
C++是根据C语言改变的一种语言~ C++适用于大的程序编写上容易  但是C++同样也比较难
影像中C++难一点

上一个:c++链表怎样实现输入任意个 数
下一个:C++图书馆管理系统程序设计实习报告

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,