C++ vs C

原文:https://www.geeksforgeeks.org/c-vs-c-sharp/

C# 是一种通用、现代、面向对象的编程语言,发音为“C sharp”。它是由安德斯·海尔斯伯格和他的团队领导的微软开发的。 C++ 是一种静态类型、多参数和面向对象的编程语言。起初,C++被称为带类的 C。它是由比雅尼·斯特劳斯特鲁普在 AT & T 贝尔实验室开发的。

下面是 C++和 C# 的一些主要区别:

| 特征 | C++ | C# | | --- | --- | --- | | **内存管理** | 在 C++中,内存管理由程序员手动执行。如果程序员创建了一个对象,那么他就有责任在该对象的任务完成后销毁该对象。 | 在 C# 中,内存管理由垃圾收集器自动执行。如果程序员创建了一个对象,并且在该对象的任务完成后,垃圾收集器将自动删除该对象。 | | **平台依赖** | C++代码可以在任何平台上运行。C++用于应用程序需要直接与硬件通信的地方。 | C# 代码是特定于 windows 的。虽然微软正在努力使其全球化,但到目前为止,主要系统并不支持 C#。 | | **多重继承** | C++支持通过类的多重继承。意味着一个类一次可以扩展多个类。 | C# 不支持任何通过类的多重继承。 | | **边界检查** | 在 C++中,编译器不执行绑定检查。错误的是,如果程序员试图访问无效的数组索引,那么它会给出错误的结果,但不会显示任何编译错误。 | 在 C# 中,数组中的绑定检查是由编译器执行的。错误地,如果程序员试图访问一个无效的数组索引,那么它将给出编译错误。 | | **指针** | 在 C++中,指针可以在程序的任何地方使用。 | 在 C# 中,指针只能在不安全模式下使用。 | | **语言类型** | C++是一种低级语言。 | C# 是高级面向对象语言。 | | **难度等级** | C++包含非常复杂的特性。 | C# 非常容易,因为它有定义良好的类层次结构。 | | **应用类型** | C++通常用于控制台应用程序。 | C# 用于开发移动、windows 和控制台应用程序。 | | **编译** | C++代码编译后直接转换成机器码。 | C# 代码在编译后被转换成中间语言代码。 | | **面向对象** | 由于原始数据类型,C++不是一种纯面向对象的编程语言。 | C# 是一种纯面向对象的编程语言。 | | **访问说明符** | 访问修饰符是公共的、私有的、受保护的。它不包含内部和受保护的内部访问修饰符。 | 在 C# 中,公共、私有、受保护、内部和受保护的内部用于访问说明符。 | | **测试变量** | 在 switch 语句中,测试变量不能是字符串。 | 在 switch 语句中,测试变量可以是字符串。 | | **控制声明** | 它不包含这种额外的流量控制语句。 | 除了争取,边争取边做;它有另一个为每个调用的流控制语句。 | | **功能指针** | 它确实有函数指针的概念。 | 它没有函数指针的概念。 |