• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

c++和c#有什么区别?

65395d816bd5c387 2019-04-23 浏览量:727
c++和c#有什么区别?一直以为它们一样​
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 语法结构上,C++和C#基本上相同 C#是用来做应用程序和软件的,​而C/C++是用来做系统程序的(也能做应用软件但没有C#方便)优点很多比其它的高级语言更容易对内存以及作系统底层相关的开发比起汇编语言它具有良好的可移植性. 计算机编程语言发展的规则是向更高级易开发更方便的方向发展的不会再发展出一个像C一样的系统底层开发语言所以学好C/C++还是很必要的但如果你不想做这些系统底层开发工作也就不用对C进行太深入地研究了在编程方面应该对算法以及数据结构进行深入学习. 现在的高级语言如C#主要把它的语法也就是编程方法学会然后对其编程机制进行一些学习就够了重要的是其它的东西如学C#更重要是的对.

其他答案 数量:3
  • 都是面向对象的语言

    C#是对C和C++的进一步封装,使得顶层应用的编写更方便,比C++要容易学习和使用,当然灵活性降低了

  • c#的安全性比c++高,但是执行效率是c++高,开发算法用啊++,不用算法可以用c#,c#没有指针这个功能,直接使用的是委托和事件,所以不用指针安全性就高了,而且不需要释放内存,是自动释放的这点比c++好
    • 发布于23小时前
    • 举报
    • 评论 0
    • 0
    • 0

  • 区别:

    1C#不支持多重继承,这是与C++明显区别的地方,说真的多重继承有时候用起来挺麻烦的,可能微软怕你用不好吧,不给你提供了,但我个人觉得没有了多重继承感觉有点可惜。

    2.在标准的C#安全代码中不支持指针类型的操作,然而,你却能在微软所谓的“非安全代码”中操作指针类型对象。

    3.C#中所有对象都只能通过关键词“new”来创建,C++的“类名_对象名”方式在C#中变为声明一个引用。呵呵,万物皆对象,连常见的数据类型都变为对象了,JAVA味道很浓。

    4.数组变为了类,因此对于数组里的元素,.NET framework直接提供了一系列的操作:查找、排序、倒置……

    5.在C#里面,数组的元素都是存放在托管堆里面,比起C++的在内存里不确定位置申请一块连续空间要安全得多。

    6C++的switch后跟参数必须是int型,而C#却允许string型,这点改进觉得真的是比以前方便多了!

    7.C#会禁止所有switch..case语句的失败情形,除非case语句后是空格,否则执行了前一个case语句就算没有break也会停止执行后面的case语句。

    8.在异常处理上,C++允许抛出任何类型,而C#中规定抛出类型为一个派生于System.Exception的对象。

    9.C++的宏在C#中被抛弃了很多,而且也不建议使用,因此很少见。

    10.C++的模板在C#里没有了,但在C#中我们找到了能完成模板任务的更锋利的武器:委托。

    11.C++的全局变量这一概念没有了,C#和JAVA类似,要把所有东西都放在类里面,还建议使用命名空间包含起来。

    12.C#可以在定义类的时候直接给属性赋值,而C++这么做却会编译出错。

    13.C#里有静态构造函数一个概念,这个构造函数只执行一次,因此能够保证一些静态成员只被初始化一遍。

    14.C#有自动垃圾收集机制,防止内存泄露,把C++程序员从繁重的内存管理上解放出来。

    15.更强的类型转换保护机制,比如说把float转成uint,直接转换0.35会变成0.34,是因为二进制无法表示这样的数字,使用System.Conver里的方法,可以安全地把类型安全转换过来。

    16.委托与事件、装箱与取消装箱、Web Services……一大堆C++没有的新东西,我感觉是做大型项目方便了管理,也容易扩充,但做起小型项目,由于是编译成IL代码的,运行需要.NET framework SDK支持,效率是个问题,不利于做那些对运算速度和内存消耗要求高的项目。

    • 发布于16小时前
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

c++和c#有什么区别?