c++中运行时和编译时多态性的区别

Difference between runtime and compile time polymorphism in c++

本文关键字:多态性 区别 编译 运行时 c++      更新时间:2023-10-16

我对这两种多态性感到困惑,请通过简单的例子帮助我,因为我是c++的新手。

多态性意味着在不知道不同对象的确切类型的情况下编写通用代码来处理它们。

静态绑定是一个属性,它允许编译器在编译时解析所调用的类型。但是没有多态性的静态绑定也可以存在。编译时多态性是使用函数和操作符重载实现的,其中编译器具有关于数据类型的所有先验知识。所需的参数,以便在编译时选择适当的函数。

动态绑定是一个允许在运行时决定类型的属性。但是没有多态性的动态绑定也可以存在。如果使用动态绑定来编写与层次结构中多个类的对象一起工作的通用代码,那么它将是动态多态性。运行时多态性由虚函数实现(虚函数是在基类中使用关键字virtual声明的成员函数,由其派生类以相同的名称重新定义)。