多态 基类于子类相互转换

来源:互联网 发布:皮影客动画软件 编辑:程序博客网 时间:2024/06/05 02:46

由于多态原所以无论向上指针类型转换或者向下指针类型转换,则调用成员函数(两个类都实现了)无论调用的是哪个类的函数,遵循下面2个规则:

1)调用虚函数时,因为是晚绑定(动态绑定),所以根据指针指向的对象的实际类型来决定。

(2)调用非虚函数,因为是早绑定(静态绑定),所以根据指针声明的对象类型来决定。

#include <iostream>#include <windows.h>using namespace std;class C{public:     void display1(){cout<<"c1"<<endl;}     virtual void display2(){cout<<"c2"<<endl;}};class D : public C{public:    void display1(){cout<<"d1"<<endl;}    void display2(){cout<<"d2"<<endl;}};class E : public D{public:    void display1(){cout<<"e1"<<endl;}    void display2(){cout<<"e2"<<endl;}};int main(int argc, char* argv[]){    D *pd = (D*)new C();    pd->display1();    pd->display2();    system("pause");    return 0;}

0 0
原创粉丝点击