|
详细来说两种语言的差别:
1. 类型检查
C: 弱类型,因为要重复利用用无类型语言B写好的代码,有复杂的隐式转换,以至于array可以和指针之间进行隐式转换
C++: 大体上兼容C,但是禁止了(*void)向其他类型指针的转换,加入新关键字new,提倡让编译器检查类型,是比较现代的做法。
2. 泛型
C: 当初还没有泛型这个概念,所以C在语法层面上不支持泛型,也没有办法用C写出有良好泛型特性的接口
C++: 通过模板来支持泛型,但是之后模板被开发出了很多用法,极其复杂,难以Debug
3. 面向对象特性(OB或OO)
C: 语法层面上不支持,可以写出基于对象的代码(Object-Based)
C++: 有一套完整的语法体系来支持,支持多重继承和虚拟继承,比现今主流的OO做法要复杂
4.标准库
C: 标准库很小,必须求助于第三方库
C++: 虽然不如一个语言一个平台的90年代语言那么丰富,但常用的数据结构还是有的 |
|