多继承小记

来源:互联网 发布:js集合和数组 编辑:程序博客网 时间:2024/06/14 04:16
#include <iostream>using namespace std;class A{public:    virtual  void f(){cout<<"A"<<endl;}    void s(){cout<<"A:s"<<endl;}};class B:public A{public:   virtual void f(){cout<<"B"<<endl;}   void s(){cout<<"B:s"<<endl;}};int main(){    A *pa = new B();    pa->s();//说明非虚函数的话,取决于我指针类型,输出A:s    A *pa2 = (A *)new B();    pa2->f();//虚函数多态定位到子类的函数,输出B    B *pb = (B *)new A();    pb->s();//取决于指针类型,输出B:s    pb->f();//输出A    static_cast<B*>(pa2)->f();//输出B    static_cast<B*>(pa2)->s();//取决于指针类型,输出B:S    static_cast<A*>(pb)->f();//输出A    static_cast<A*>(pb)->s();//取决于指针类型,输出A:s    return 0;}