C#与C++相比优势在哪里?RT[解决办法]你想明白装甲师比特种部队的优势在哪里就明白了...[解决办法]探讨你想
C#与C++相比优势在哪里?
RT
[解决办法]
你想明白装甲师比特种部队的优势在哪里就明白了...
[解决办法]
[解决办法]C#来的比C++快,所以成本上面低一些,C++更底层,效率上高些,但是难度大,不如C#快,个人认为以后肯定会是C#和java以及脚本的天下,C++其实一直都没取代C,但是还是很有前途的。。。
[解决办法]开发的东西速度也不错,开发进度更快。
关键是人员便宜了很多。
[解决办法]效率高
[解决办法]两个+号融合了,成了一个。
[解决办法]问C++好还是汇编好
C++发展而来
[解决办法]c++对硬件控制好点吧
[解决办法]C#更高效。。个人觉得。。。
[解决办法]大家都早点洗洗睡吧
[解决办法]GC
库比较统一
可多语言
WP7只能用它
[解决办法]比较语言本身没有意义,c#是基于.net framework框架的,c++可以是mfc/vcl/wfc等框架,也可以直接api编写,区别就在于框架,如果要比较。比较好的问题应该是拿.net framework/mfc/vcl/wfc/sdk等方式的windows程序开发做对比。.net framework才有优势可言,c#语法没啥好说的。
.net framework的优势无外乎是更高级的抽象,c++任何一种框架,都是消息驱动的,.net framework则是事件驱动的。原本的消息,微软在mfc中就体现了自己封装的思路,一堆的OnXXX方法,到了.net自然也是如此,并且发扬光大,mfc中,对话框的初始化放在OnInitDialog方法中,方法默认的加入了一些调用系统函数的代码,.net framework的封装就是让你大多数时候,只能用例如Load,Active,Click的事件,而不是OnLoad...的方法,当然你可以override,但是这样你也只能简单的一行base.OnXXX的方式调用父类的默认实现,而看不到实现细节。
除了封装,.net framework加强了运行时的类型部分,mfc的中为了能实现反射自己是哪个类,类名是什么,弄了那么复杂的一套宏,和支撑的方法,.net下的反射方法对开发人员来说隐藏了细节,功能也比mfc的强大很多。
泛化编程-泛化类型
C++中泛化编程很容易导致代码膨胀,大量使用,你的最终可执行程序可能会暴增。.net framework的泛化类型则是运行时泛型,使用再多也不会代码膨胀,当然,效率和c++的没得比,也不需要比,结果显而易见。
泛化编程-泛化操作
C++了解的不深入,貌似不支持泛化方法,因为动态创建方法需要解释代码的,匿名方法等说白了只是概念,编译后和非匿名方法没什么本质区别,都是生成一个方法签名,调用。不过.net提供了delegate的匿名方法写法,lambda的简化写法。看上去的确有点像。直到2010 .net 4.0的动态方法,才算是真正实现了泛化方法。
内存管理
c++你一个不小心就内存泄漏了,或是释放不对称导致使用野指针,出错误往往很难发现,调试难度大,野指针,访问越界是非常难查的问题。
.net framework开辟了3个线程来动态的维护一个哈希表,检查哪些变量可以释放,让开发人员傻瓜式开发,不用关心内存如何组织的。
字符串类型
字符串本身是一个很高级的东西。c中是没有的,到了c++,大家开始创造了。mfc中有了CString,vcl/stl中都有叫string的类型,但他们都不同,字符串的操作和效率也不同,CString是最有争议的类了。
.net framework下字符串处理,提供了字符串池来维护创建的字符串,string类提供了常用的方法,.net framework内置了正则表达式引擎,c++的主流框架中都是不包含这个的,mfc/vcl/sdk等都需要外挂boost/deelx等正则表达式引擎的实现,不同的实现,对正则的支持也稍有不同。
UI界面
c++大多是开发人员维护界面更新。.net framework则是内部有很复杂的关联,保持联动,这个败笔设计,让开发难度降低到最低,但效率的影响非常巨大。这也是我们经常优化.net界面入手点。微软也很明白自己的问题所在,每次的版本升级,ui库都会提供一些方法来弥补。比如双缓存绘图的支持,虚模式更新listview。
可能有点说跑题了吧。打住了。如有言错,楼下指正。
[解决办法]语言本身没有优势,用的人多了自然就有优势了 ^__^
这个优势啊,不是说它有多好多好.而是很多公司愿意使用C#来开发产品,这样就会需要很多使用C#的程序员,因此C#的工作就会好找一些.
最好不要纠结于语言本身,任何语言的使用只是一个熟练度的问题.
[解决办法]别比了,这个话题没必要再提了,你看任何一本计算机书籍,关于语言的结论都是一个:语言没有优劣,只是适应不同的开发环境
[解决办法] 这是个很深的话题,简单地说,C#更简单一些。C++更底层。
[解决办法]C#不是 (C++)++吗
[解决办法]没有c++中难用的部分(比如多重继承)
有一个强大的标准类库
面向虚拟机(构建于操作系统之上)
编译器的速度超级快
IDE 支持强大
C系语法, 入门快
[解决办法]
用同样投入, C# 你可以走的远些, 产出好,
C++ 的, 还没进门就挂掉的, 很多.
C# 则在拖拉控件增删改查那个结束的地方, 尸横遍野.
[解决办法]
[解决办法]没有 那个更好 。具体 看项目 和实际应用 实际上很多人 C# 和C++都会 。
[解决办法]C++做gui和数据库比较痛苦的。
但C#做出的gui运行起来总感觉慢办拍
[解决办法]c# 易懂 ,好學,而c++是比較底層的東西,但是c++寫的代碼效率高
[解决办法]c# 更容易上手,但 c++ 学好了有更好的待遇。
[解决办法]送你一句王家卫电影的台词“你以为山后面有什么吗?还是一样的沙漠,还是另一座山。不要爬了!”
[解决办法]感觉最大的优势是编译速度比c++的快很多很多
[解决办法][解决办法]这不是 浪费分么 两个是不同的平台 肯定 各有各的优势 不能这样涵盖吧
[解决办法]相对简单,容易控制,很多CLR帮你做。
[解决办法]一个是C两个+,一个是C四个+ ^_^^_^
[解决办法]C++ 的指针变成了委托
[解决办法]C# : 4个+
C++ :2个+
C : 0个+
[解决办法]个人认为 C#是C++的升级版,如14楼所说,单纯比语言没有意义,因为都是有相对应的平台。
C#集合了C++与Java的优点。
封装好,容易上手,做与硬件关联不大的项目时要比c++快。
[解决办法]C++和C#都是面向对象的语言,但是,C++在这一点上做得不够彻底,你会发现用C++同样能编写面向过程的程序,这就使得C++是面向对象和面向过程的杂糅;C#从名字上可以看出是C++然后“--”而成,这里的“--”就是去掉了面向过程那部分。
[解决办法]安全、可靠。
[解决办法]C#适应快速开发,C++适应底层开发
[解决办法]想学好语言还是从最底层开始学,想做个项目,快的话就用c#,方便。
[解决办法]这个要看你开发的用途了,各有各的优势~