C++和C#的语法和功能区别
C++是直接从C语言发展过来的没错,但最初这种语言不是叫C++,而是C with class,这是由于当时C语言在编程界居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言,所以当时有两个问题最受关注:C++要在运行时间、代码紧凑性和数据紧凑性方面能够与C语言相媲美,但是还要尽量避免在语言应用领域的限制。在这种情况下,一个很自然的想法就是让C++从C语言继承过来,但是Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例如:从 Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL获得了//注释,从Ada得到了模板、名字空间,从Ada、Clu和ML取来了异常。
所以C++不是C的延伸,而是几乎完全不同的东西,C是面向过程的,C++是面向对象的,两者根本不具有可比性,相同的只是C++保持了C语言的表示形式和优美。
至于C#,它是为生成在 .NET Framework 上运行的应用程序设计的。C# 简单、功能强大、类型安全,而且是面向对象的。C#同样保持了C语言的表示形式和优美。
下表包含 C++ 和 C# 功能之间的重要比较。如果您是一位 C++ 程序员,此表将为您提供这两种语言的最重要差异。本人着重以C# 为主和C++的语法功能进行对比。
继承:与C++中可以继承自多个类不同,C#中,类只能继承一个基类中的实现。但类或接口可以实现多个接口。
数组:声明 C# 数组和声明 C++ 数组的语法不同。在 C# 中,“[]”标记出现在数组类型的后面。
bool 类型:bool 类型和其他类型(特别是 int)之间没有转换。
long 类型:在 C# 中,long 数据类型为 64 位,而在 C++ 中为 32 位。
struct 类型:在 C# 中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。
switch 语句:与 C++ 中的 switch 语句不同,C# 不支持从一个 case 标签贯穿到另一个 case 标签。
delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类

最低0.47元/天 解锁文章
124

被折叠的 条评论
为什么被折叠?



