C++类的继承笔记

来源:互联网 发布:慢播放视频软件 编辑:程序博客网 时间:2024/06/02 03:11

老是忘记类的继承特性,把测试代码和结果记下来

#include <iostream>#include <QDebug>#include <QList>using namespace std;class ParentA{public:    virtual void ptFun(){printf("class ParentA call!\n");}};class ChildB : public ParentA{public:    void ptFun(){ printf("class ChildB call!\n"); }};class ChildC : public ParentA{public:    void ptFun(){ printf("class ChildC call!\n");}};int main(){    qDebug("***********正常打印*************");    ParentA* a1 = new ParentA;    ChildB* b1 = new ChildB;    ChildC* c1 = new ChildC;    a1->ptFun();b1->ptFun();c1->ptFun();    qDebug("***********强制转换成基类打印*****************");    ParentA* a2 = (ParentA*)(b1);    a2->ptFun();    ChildB* b2 = (ChildB*)(a1);    b2->ptFun();    qDebug("***********都加入到基类的链表,再打印**********");    QList<ParentA*>   aList;    aList.append(a1);    aList.append(b1);    aList.append(c1);    aList[0]->ptFun();aList[1]->ptFun();aList[2]->ptFun();    return 0;}


 

0 0