优点
缺点
C++本质上说是提前编译的,Fortran也是。C#和Java大多时候是编译成字节码,运行的时候再 即使编译。Python和Ruby通常是解释型。这就产生了一个性能的分级:C++和Fortran比Java和C#快,Java和C#又比Python 和Ruby快。
几种计算机语言的评价(修订版)
为什么一些语言会比别的快?
C++面向对象的三个基本特征:封装、继承、多态。它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用
在 C++ 中,用类进行封装(数据抽象),用类派生从一个类继承另一个:派生类继承基类的成员。
多态(动态绑定)使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数
继承和多态(动态绑定)在两个方面简化了我们的程序:能够容易地定义与其他类相似但又不相同的新类,能够更容易地编写忽略这些相似类型之间区别的程序。
封装
是一项低层次的元素组合起来的形成新的、高层次实体的技术。
函数
是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中。被封装的元素隐藏了它们的实现细节——可以调用一个函数但不能访问它所执行的语句。类
也是一个封装的实体:它代表若干成员的聚焦,大多数(良好设计的)类类型隐藏了实现该类型的成员。目的:
继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
基类(base class)
,而继承而来的类则称为派生类(derived class)
。多态:多态的基础是继承。多态下,子类重写父类的方法,实际使用过程中,用父类引用变量指向子类对象,此时父类引用调用的是子类重写后的方法,由于是父类引用变量,所有无法调用子类特有的方法。如果想调用子类特有的方法,必须强制类型转换到子类。
多态性派生于一个希腊单词,意思是“许多形态”。之所以称通过继承而相关联的类型为多态类型
,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”。在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针。
多态性:指的是基于引用或指针的动态类型获得类型明确的行为的能力。
template(模板)
:静态多态(编译时完成,效率高,适配性高,松耦合性),隐形接口overload(重载)
:静态多态
overwrite(重写)
:静态多态,子类屏蔽父类的同名基函数
override(覆盖重写)
:动态多态(运行时完成,接口重用,编译器无法优化)
[1]C++ primer 第四版
[2]几种计算机语言的评价(修订版)
[3]为什么一些语言会比别的快?
[4]C++ 特性及类(面试复习整理)
[5]C++ 多态-菜鸟教程
Update your browser to view this website correctly. Update my browser now