C# 与 C++: 它们之间的区别
C# 和之间的主要区别 C++
- C++ 是一种低级编程语言,它在其基础语言 C 中添加了面向对象的特性,而 C# 是一种高级语言。
- C++ 编译为机器代码,而 C# 则“编译”为 CLR(公共语言运行时),由 ASP.NET 中的 JIT 解释。
- C++ 是一种面向对象的语言,而 C# 被认为是一种面向组件的编程语言。
- In C++ 您需要手动管理内存,而 C# 在虚拟机中运行,虚拟机会自动执行内存管理。
- In C++ 开发应该遵循任何特定的架构并且必须是可移植的,而 C# 开发应该是简单、现代、通用、面向对象的编程语言。
什么是 C++?
C++ 是一种计算机编程语言,包含 C 编程语言和 Simula67(第一个面向对象语言)的功能。 C++ 引入了类和对象的概念。
它封装了高级和低级语言特性。因此,它被视为中级语言。以前它被称为“带类的 C”,因为它具有 C 语言的所有属性。
什么是 C#?
夏普 是一种面向对象的编程语言,由 Microsoft 在 .Net Framework 上运行。它具有强类型、命令式、声明式、面向对象(基于类)和面向组件编程等功能。它由 Microsoft 在.NET平台内。
“C sharp” 这个名字的灵感来自音乐符号。这里的“#”符号表示书写的音符的音高必须高出半音。
历史回顾 C++
C++ 语言是由 AT&T 贝尔实验室的 Bjarne Stroustrup 开发的。Stroustrup 是 C 的坚定支持者,也是 Simula67 的崇拜者。他想结合两种语言的优点。他的目标是创建一种支持面向对象编程特性并仍保留 C 语言功能的语言。这导致了 C++.
C# 的历史
Anders Hejlsberg 是 C# 语言开发的关键贡献者。1999 年,他组建了一个团队来开发一种新语言,当时被称为“Cool”。该项目于 2000 年 XNUMX 月在 .Net 开发者大会上获得批准并宣布。该语言后来更名为 C#。
原理 C++ 发展
- 程序应该简单、面向对象、易于理解
- 开发应该在稳健且安全的环境中进行。
- 代码应该遵循特定的架构并且必须可移植。
- 代码应该易于“解释和动态”
C# 开发原理
现在在这个 C# vs C++ 教程,让我们了解 C Sharp 与 C++.
产品型号 | C++ | C# |
---|---|---|
语言类型 | C++ 是一种低级、平台无关的编程语言。 | C# 是一种高级语言。 |
编译中 | C++ 编译为机器码 | C# 编译为 CLR(公共语言运行时),由 ASP.NET 中的 JIT 解释 |
内存管理 | In C++,如果动态分配对象,则需要手动管理内存。 | C# 自动运行内存管理 |
多重继承 | C++ 支持多重继承 | C# 不支持多重继承。 |
难度等级 | C++ 包含更复杂的功能。 | C# 没有任何复杂的功能。它具有简单的层次结构并且非常容易理解。 |
默认访问说明符 | 公共 C++ 对于结构体,对于类,为私有 | C# .net 中的私有。 |
平台 | C++ 是一种可以在各种平台上运行的语言。它在 Unix 和 Linux 系统上也同样流行。 | C# 虽然是标准化的,但在 Windows 之外却很少见到。 |
独立应用 | C++ 可以创建独立的应用程序。 | C# 无法制作独立应用程序。 |
面向对象 | C++ 不是一种完整的面向对象语言。 | C# 是一种纯面向对象的语言。 |
边界检查 | 不支持数组的边界检查。 | 支持数组的边界检查。 |
垃圾收集 | C++ 不支持垃圾收集。 | C# 支持垃圾收集。 |
多重继承 | C++ 支持多重继承。 | C# 不提供多类继承。 |
Foreach循环 | 旧版本的 C++ 不支持 for each 循环。(基于范围的 for 循环 C++ 自 C++ 11) | C# 支持每个循环。 |
指针的使用 | 您可以在程序的任何地方使用指针。 | 您只能在不安全模式下使用指针。 |
用于 | 广泛应用于游戏中。 | C# 编程可用于创建 Windows、移动和控制台应用程序。 |
二进制文件的大小 | C++ 更加轻便。 | C# 有很多开销,在编译之前必须包含一些库。 |
项目类型 | C++ 程序员通常专注于直接与硬件协作的应用程序或需要比其他语言可以提供的更好的性能的应用程序。 | C# 用于现代应用程序开发。 |
编译器警告 | C++ 只要语法正确,它几乎可以让你做任何事情。因此,它是一种灵活的语言,但你可能会对正在运行的操作系统造成严重损害。 | C# 受到严格保护。因为如果您无意中编写了可能造成损害的代码,编译器就会抛出错误和警告。 |
编译结果 | 编译后, C++ 代码转换成机器码。 | 经过编译后,C#代码被转换成中间语言代码。 |
Switch 语句 | In C++ Switch 语句,测试变量不能是字符串。 | 在 C# switch 语句中,可能是或可能不是字符串。 |