C/C++学习笔记

2.0 C++远征:隐藏

2016-11-18  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读