C++与C#编程的差异分析

以前虽然学习过C++编程,但由于主要从事C#类的工作,因此没有刻意总结两者的异同。现在需要利用C++进行编程开发,因此可以借此机会总结一下两者的异同点,以便后续工作中进行注意规避。但由于是个人总结,无疑会有差错瑕疵的地方,但后续会不断的修正,以便力求正确。

相同点如下:

1,都可以利用VS进行开发,即可以使用相同的开发平台。

2,部分数据类型相同,如char,int,floor,double,bool.

3,   都是大小写敏感的编程语言。

4, 基本,逻辑等运算符一致,但杂项运算符略有不同。

5,运算操作中都可以使用LAMBDA表达式,可能实现上有细微差别。

6,异常处理模式类似。

 

 

 

 

不同点如下:

1,语言类型通,C#一般认为归类于高级语言,与人的思维接近,易于学习;C++则归类于中级语言,理解上较C#有一定的难度。

2,编译方式不同。虽然两者都可以通过VS进行编程开发,但VS只是集成了两者的编译器,故两者的编译方式是不同的。当然,两者都可以通过文本编程后,利用CMD及各自的编译器进行编译开发。

3.  static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。在 C++ 中,当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。

4,对于全局变量,C++分为文件内的STATIC静态变量,文件间的EXTERN引用变量。而C#则可以通过从属关系点进行引用,如A.B

5. C++的杂项运算符有,成员运算符.或->,逗号运算符,强制转换运算符cast;C#有强制转换运算符as,判断类型运算符typeof()及is.

6,  C#有访问级别限制,C++有存储类划分。但这是相对于一般的C++编程而言的,而对于面向对象编程的C++,由于类的引入,出现的访问级别的划分。

7,C#的方法有引用参数REF,输出参数OUT,C++的函数有引用调用参数和指针调用参数。

8.   C++ 生成随机数srand(),rand(), C#随机数是RANDOM(),NEXT.

9.   C++二维数组ARR[0][0], C#二维数组ARR[0,0].

10. C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。

    C++ 标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。

    在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。

11. C++中有指针类型,且可以进行相关的运算及操作。

12. C++中有引用类型,与指针不同,常用于参数传递,类似于C#中的REF.

13. C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。有四个与时间相关的类型:clock_t、time_t、size_ttm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。结构类型 tm 把日期和时间以 C 结构的形式保存.

     C#有系统时间类型DATETIME,且有各种函数进行时间表示。

14.与设备的交互,C++通过cout<<或cin>>在控制台输出输入,C#通过console.write或read来进行交互。

15. C++中的类可以继承多个类,C#中的类只能单继承类,但可以继承多个接口。

16. C++中访问级别包括public ,private,protected,C#中包括public,private,protected,internal,因为C#作为高级语言,有程序集的概念,故有了新的访问级别。

17. 文件操作函数不同,但模式类似。C++的文件操作类型为fstream,ofstream,ifstream,而C#的文件操作类型为FileStream.

18. 内存管理不同,C++通过NEW,DELETE进行动态内存的分配与回收;C#本身自带内存回收机制,因此只需NEW分配内存即可。因此,指针在C++中用处较大,而C#原则上不支持指针操作。

19. C++的多线程操作函数有pthread_create (thread, attr, start_routine, arg) ,pthread_exit() 等,C#的多线程操作类为System.Threading.Thread

20.C++WEB编程是通过公共网关接口(CGI)进行操作的,而C#则是通过WEBFORM或MVC进行模块化操作。

21.C++的操作有固定的类库STL,标准库,以及自己定义的一些库,以便于编程操作;C#的操作则有微软提供的FRAMWORK提供的一系列类库,以便于编程操作。

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值