您的位置:首页 > 编程语言 > C语言/C++

C#与C++的区别

2008-07-18 11:41 176 查看
最近由于工作的需要,学起了C#,发现跟以前学习的C++有些不大一样,以下为学习小结

一、首先介绍一下C#与.net的背景:
C#是微软为.net平台专门开发的一种语言,而.net是微软为了开发应用程序的一个富有创新性的平台。.net框架可以应用于各种操作系统,而不仅仅是windows。.net框架主要包含一个非常大的代码库,我们可以使用各种语言(如C#)通过面向对象的技术来使用这些代码。在xp的系统里编译c#的程序需要.net框架的支持,而微软宣称在下一版本的操作系统会加入.net框架。

C#继承了C++很多方面的东西和思想,而C++和C都是国际化的标准,有标准组织维护,它并不属于任何一个公司,C#则是微软自己在C++基础上扩充,发展出来的,C#并不是一个国际标准,它只是微软件的一家子之言.但从纯技术角度讲,C#在C++基础上扩充出来以后,或限制出来以后,更注重实际应用,思想上完全面向对象,限制掉了C++的一些东西,又增加了一些比如内存自动回收等功能,但这样一些功能的扩充,其实是限制了的C++。在C#上编程,完全没有C++上自由,但这样一变去对软件开发效率思想上有很大的提高,所以C#是为了提升开发效率,和软件工业化的产物,相比之下,C#能作到的,C++都能做到,并且更完全,只不过C++更复杂。

二、下面谈一下它们语法差别:
1. C#中多了委托,用于把引用存储为函数以灵活调用函数,感觉有点像函数指针的用法。
2. C#多了接口(interface),接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一个类可以支持多个接口,多个类也可以支持同一个接口。
3. C#变量使用前必须赋值
4. C#只支持单继承
5. C#不推介使用指针,并具有内存管理功能(new之后不用delete)
6. C#严格区分bool和int类型
7. C#的控制台输入输出语句与C++不同。
8. C#变量没有全局变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。
9. C#的二维数组的声明与C++的不一样。
10. C#使用命名空间比较多,自己在MFC中几乎没用过这东西,呵呵~
11. 有待进一步学习后补充

三、参考资料:
1. C#与C++,JAVA的比较
/article/5413244.html
2. C#与C++的相同点和不同点
http://zhidao.baidu.com/question/25956670.html
3. C#入门经典第三版
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: