编程语言串烧(一)
C++ vs. C#
如果将C++和C#这样的面向对象编程语言来做对比
C++着重强调的是类型的自主管理,通过定义方法来保证形式上的简单统一化,比如内存的自主管理,再比如将自定义类型和内部数据类型比较。
而C#强调的是内部方法的交互作用以实现对象的引用操作,如 Object.ToString
方法就可以用来给外部展现内部的数据。从这个角度来说C++代码编写的过程中可以采用C#规范。
如果再从泛型上来说,C++泛型更多是为了实现代码的重用,C#则更多的是为了完善类的定义,比如说泛型类必须实现某某接口。此外从实现方式上来看C++泛型类似于宏替换的方式,正因如此才有代码膨胀的可能,C#则是通过多态来实现的,为此可以直接共享代码也就不会存在代码膨胀的隐患。
此外C++的一个强大之处在于它的内存管理也就是指针的运用,所以如果用C++来开发时发现内存的管理不是那么的重要就可以用C#来开发。
要点:
- C++虽然是面向对象语言却并不是强调对象而是C语言的灵活语法体系
- C#是纯面向对象的语言,它很放心的把内存管理交给了系统自动打理让开发者可以集中精力在架构上