C++習題與解析(繼承和派生-01)

字號:

.1 分析以下程序的執(zhí)行結(jié)果
    #include
    class base
    {
    public:
    base(){cout<<"constructing base class"<~base(){cout<<"destructing base class"<};
    class subs:public base
    {
    public:
    subs(){cout<<"constructing sub class"<~subs(){cout<<"destructing sub class"<};
    void main()
    {
    subs s;
    }
    解:
    本題說明單繼承情況下構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。這里base為基類,subs為派生類。
    所以輸出為:
    constructing base class
    constructing sub class
    destructing sub class
    destrcuting base class
    注意:在單繼承情況下,首先調(diào)用基類的構(gòu)造函數(shù) ,隨后調(diào)用派生類的構(gòu)造函數(shù),析構(gòu)函數(shù)的調(diào)用順序則正好相反。