c#和c++比较
展开全部
首先,C#的流程控制与C++没有任何区别,你根本就不用学(改进了一些,比如说switch要求更严格,不能缺break)
其次,C#对类型的要求更严格,这一点应该更好学(你不用担心字符还要算内码运算什么的了,C#中的char要转内码必须强制转换)
再次,C#面向对象的概念更严格,完全以类为单位(再也没有全局成员,如C++中的全局main函数)
还有,C#没有指针(这是重点),除非允许不安全(unsafe)代码。指针完全以引用替代,不允许类似C++这种指针变量的运算。
最后,C#类的概念和继承更简单化,取消了多继承,并增加了内存回收机制,一般不需要写析构函数什么的了。
关于面向对象的几个概念的转化(C++到C#需要注意的)
C#中的类最多只能继承自一个基类,不像C++可以继承多个,C#是使用接口实现多重继承的
C#中的属性相当于C++中你在public处写的getXXX和setXXX函数,可以为private成员赋值或取值
C#中的类可以设置访问级别(默认internal,还可以是private或public等),C++没有(类默认就是public的)
C++中的纯虚函数(后面写=0的函数)=C#中的抽象(abstract)函数
C++中的抽象类=C#中的抽象(abstract)类
C++中的虚基类=C#中的接口
C#一般不用友元,而是使用命名空间的形式(同时新增了internal访问级别标识),不同命名空间也可以成为友元
其次,C#对类型的要求更严格,这一点应该更好学(你不用担心字符还要算内码运算什么的了,C#中的char要转内码必须强制转换)
再次,C#面向对象的概念更严格,完全以类为单位(再也没有全局成员,如C++中的全局main函数)
还有,C#没有指针(这是重点),除非允许不安全(unsafe)代码。指针完全以引用替代,不允许类似C++这种指针变量的运算。
最后,C#类的概念和继承更简单化,取消了多继承,并增加了内存回收机制,一般不需要写析构函数什么的了。
关于面向对象的几个概念的转化(C++到C#需要注意的)
C#中的类最多只能继承自一个基类,不像C++可以继承多个,C#是使用接口实现多重继承的
C#中的属性相当于C++中你在public处写的getXXX和setXXX函数,可以为private成员赋值或取值
C#中的类可以设置访问级别(默认internal,还可以是private或public等),C++没有(类默认就是public的)
C++中的纯虚函数(后面写=0的函数)=C#中的抽象(abstract)函数
C++中的抽象类=C#中的抽象(abstract)类
C++中的虚基类=C#中的接口
C#一般不用友元,而是使用命名空间的形式(同时新增了internal访问级别标识),不同命名空间也可以成为友元
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询