C++、Java和C#的特性比较

C++、Java和C#的特性比较(摘至 《Visual Studio .Net Framework Black Book》)

C++

Java

C#

具有不包含宏的预处理器 不具有任何预处理器 具有一个受限的预处理器
编译成本机代码 在程序执行时进行JIT编译,编译成字节代码 使用JIT编译方法,在首次使用或者安装时编译成中间代码
混合语言 完全OO语言 完全OO语言
支持多重继承 只支持单一继承 只支持单一继承
接口无语言支持 接口有语言支持 接口有语言支持
没有单一的基类 所有类都从单一的对象类重继承而来 所有类都从单一的对象类重继承而来
支持模板 不支持模板 不支持模板
操作符重载 无操作符重载 有限的操作符重载
可在bool和int类型之间转换 不能进行bool到int的转换 不能进行bool到int的转换
case标记使用整型类型 case标记使用整型类型 case标记使用整型类型,也可以使用字符串类型
支持枚举 不支持枚举 支持枚举
C风格的多维数组支持 C风格的多维数组支持 严格支持多维数组
通过指针或者引用,直接访问对象 所有对象都通过引用来访问 值和引用类型允许有效地给某些类型值传递
支持指针和引用 仅支持引用 引用支持;指针允许用于“不安全”的代码块中
支持变量列表 不直接支持变量列表 不直接支持变量列表
不支持属性 通过代码约束支持属性 在第一类语言特性中指出属性
不支持事件 通过代码约束支持事件 在第一类语言特性中指出事件
不支持委派 不支持委派 支持委派(与类函数指针等价)
原文地址:https://www.cnblogs.com/ipqn/p/140776.html