美文网首页C/C++学习笔记
2.0 C++远征:隐藏

2.0 C++远征:隐藏

作者: 青_阳 | 来源:发表于2016-11-18 18:27 被阅读1次

    4-1隐藏

    1.隐藏的触发条件:

    继承 成员同名 隐藏

    派生类的成员函数、成员变量与基类的重名时,基类的重名成员函数和成员变量会被隐藏。
    

    2.如何访问被隐藏的成员

    若要在派生类中调用重名的基类的成员函数、成员变量,须在成员前面加“基类名::”

    //Soldier.h
    class Person{
    public:
        void play();        // 同名成员函数
    protcted:
        string m_strName;
        int m_iAge;         // 同名成员变量
    }
    
    class Soldier : public Person{
    public:
        void play();        // 同名成员函数
        void work();
    protcted:
        int m_iCode;
        int m_iAge;         // 同名成员变量
    }
    
    //Soldier.cpp
    #include "Person.h"
    void Soldier::work(){
        m_iAge = 25;        // 调用派生类自己的成员变量
        Person::m_iAge = 35; // 调用基类中的重名成员变量要在前面加类名和域作用符::
    }
    
    //main.cpp
    int main(){
        Soldier soldier;
        soldier.play();             // 调用派生类自己的成员函数
        soldier.Person::play();     // 调用基类中的重名成员函数要在前面加类名和域作用符::
      
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:2.0 C++远征:隐藏

        本文链接:https://www.haomeiwen.com/subject/isqspttx.html