第十二週閱讀程序(6):多重繼承

代碼:

#include <iostream>  
using namespace std;  
class B  
{  
public:  
    B(int x=0)  
    {  
        X=x;  
        cout<<"B("<<x<<")\n";  
    }  
    ~B()  
    {  
        cout<<"~B()\n";  
    }  
    void print()  
    {  
        cout <<X<< " ";  
    }  
private:  
    int X;  
};  
  
  
class D: public B  
{  
public:  
    D (int x, int y):B(x)  
    {  
        Y=y;  
        cout<<"D("<<x<<","<<y<<")\n";  
    }  
    ~D()  
    {  
        cout<<"~D()\n";  
    }  
    void print()     
    {  
        B::print();  
        cout <<Y<<endl;  
    }  
private:  
    int Y;  
};  
int  main()  
{  
    D d(11,22);  
    d.print();  
    return 0;  
}  


運行結果:

 

學習心得:
類D是類B的派生類,B::print();表示調用基類B中的成員函數print();。d.print();訪問的是類D的成員,基類中的同名成員在派生中被屏蔽了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章