c++ 类 静态类型与动态类型 匹配
#include <iostream> using namespace std; class qq{ }; class sonqq: public qq{ }; class wx{ }; class A{ public: virtual void f1(qq *arg ) //虚函数 表示可以重写 { cout<<"A qq"<<endl; } virtual void f1(wx *arg) { cout<<"A wx"<<endl; } virtual void f1(sonqq *arg ) { cout<<"A sonqq"<<endl; } }; class B: public A{ public: void f1(qq *arg) { cout <<"B qq"<<endl; } void f1(wx *arg) { cout<<"B wx"<<endl; } void f1(sonqq *arg ) { cout<<"B sonqq"<<endl; } }; int main() { A *b1 = new B(); //b1的类型是A,只能调用 A 中已有方法 qq *q1 = new sonqq(); b1->f1(q1); //q1 静态类型是 qq b1->f1(new sonqq()); //new sonqq() 是 sonqq return 0; }