48_繼承中的靜態成員特性

class Base
{
public:
    //靜態成員屬於類 而不屬於對象
    static int num;
    static int data;

    static void showData(void);

};
int Base::num  = 100;
int Base::data = 200;

class Son:public Base
{
public:
    static int data;//父和子類 靜態成員 同名
    static void showData(void);
};
int Son::data = 300;

void test01()
{
    //從Base類中訪問
    cout<<Base::num<<endl;

    // Son 也擁有了靜態成員num
    cout<<Son::num<<endl;

    //父和子類 靜態成員 同名 在子類中 訪問子類中的成員
    cout<<Son::data<<endl;//200

    //父和子類 靜態成員 同名 訪問父類中的成員 必須加 Base::
    cout<<Son::Base::data<<endl;//200


    //父和子類 同名靜態成員函數 子類默認訪問子類的靜態成員函數
    Son::showData();
    //父和子類 同名靜態成員函數 子類訪問父類的靜態成員函數 必須加 Base::
    Son::Base::showData();
}

運行結果:

 

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