c++多态
* 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名
* 动态多态: 派生类和虚函数实现运行时多态
静态多态和动态多态区别:
* 静态多态的函数地址早绑定 - 编译阶段确定函数地址
* 动态多态的函数地址晚绑定 - 运行阶段确定函数地址
#include<iostream> using namespace std; class Animal { public: //Speak函数就是虚函数 //函数前面加上virtual关键字,变成虚函数,那么编译器在编译的时候就不能确定函数调用了。 virtual void speak() { cout<<"动物在说话"<<endl; } }; class cat:public Animal { public: //重写 函数返回值 类型 函数名相同 void speak() { cout<<"小猫在说话"<<endl; } }; void dospeak(Animal&animal) { animal.speak(); } //多态满足条件: //1、有继承关系 //2、子类重写父类中的虚函数 //多态使用: //父类指针或引用指向子类对象 void test() { cat c; dospeak(c);//传入的是子类对象 传入什么就进入哪个类 } int main() { test(); }
浙公网安备 33010602011771号