C++多态
多态
多态的定义
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。
简单来说就是完成某个行为,不同的对象会产生不同的结果
多态的构成条件
1. 必须通过基类的指针或者引用调用虚函数
2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写
class A { public: virtual void fun1() { cout << "A" << endl; } }; class B:public A { public: virtual void fun1() { cout << "B" << endl; } }; void fun(A* p)//指针 { p->fun1(); } void fun(A& p)//引用 { p.fun1(); } int main() { A a; B b; A* p = &a; A* p1 = &b; fun(a); fun(b); return 0; }