天天看點

子類虛函數C++ 繼承中子類與父類虛函數入棧順序 及父類私有虛函數的調用方式

發一下牢騷和主題無關:

    如果子類中有虛函數則先将子類的虛函數入棧,然後是父類的虛函數,如果子類寫重了父類的虛函數,則入棧的是子類寫重的函數,即寫重的子類的函數替換對應的父類的虛函數。

    如://A.h

    #ifndef __A_H

#define __A_H

#include <iostream>

using namespace std;

class A{

//private:

virtual void f()

{

cout<<"A::f"<<endl;

}

virtual void g(){

cout<<"A::g"<<endl;

};

    #endif

    //B.h

    每日一道理

天又快黑了,這座忙碌的城市又将入睡,讓這勞累的“身軀”暫别白日的辛勤,讓它入睡,陪伴着城市中的人們進入夢鄉。當空的彎月正深情地注視着這座城市與城市中的人們,看着家家戶戶的燈漸漸熄滅,它在床頭悄悄奏響“明月曲”……

    #ifndef __B_H

#define __B_H

//#include <iostream>

#include "A.h"

class B:public A{

void d()

cout<<"B::d"<<endl;

virtual void h()

cout<<"B::h"<<endl;

#endif

    //main.cpp