美文网首页
C++ - 基类,派生类同名成员与访问范围

C++ - 基类,派生类同名成员与访问范围

作者: Mitchell | 来源:发表于2016-01-22 19:09 被阅读241次

基类和派生类有同名成员的情况

//base
class base{
      int j;
    public:
      int i;
      void func();
};
//派生类
class derived:public base{
    public:
        int i;
        void access();
        void func();
};
void derived::access(){
    j = 5;//error
    i = 5;//引用的是派生类的 i
    base::i = 5;//引用的是基类的 i
    func();//派生类的
    base::func();//基类的
}
derived obj;
obj.i = 1;
obj.base::i = 1;
对象占用的存储空间.png
Note:一般来说,基类和派生类不定义同名成员变量。

访问范围说明符

  • 基类的 private 成员:
    • 基类的成员函数
    • 基类的友员函数
  • 基类的 public 成员:
    • 基类的成员函数
    • 基类的友员函数
    • 派生类的成员函数
    • 派生类的友员函数
    • 其他的函数
  • 基类的 protected 成员:
    • 基类的成员函数
    • 基类的友员函数
    • 派生类的成员或者友元只能通过派生类的对象来访问基类的 protected 成员,而不能通过基类直接访问。

相关文章

  • C++ - 基类,派生类同名成员与访问范围

    基类和派生类有同名成员的情况 访问范围说明符 基类的 private 成员:基类的成员函数基类的友员函数 基类的 ...

  • 2017.9.19

    派生类成员的标识与访问 同名覆盖原则 当派生类与基类中有相同成员时: 若未强行指名,则通过派生类对象使用的是派生类...

  • 芦继超9.19总结

    派生类成员的标识与访问 1.当派生类与基类中有相同成员时: 若未强行指名,则通过派生类对象使用的是派生类中的同名成...

  • 9.19

    当派生类与基类中有相同成员时: 若未强行指名,则通过派生类对象使用的是派生类中的同名成员。 如要通过派生类对象访问...

  • 2019-12-20C++中派生类对基类成员的访问形式及规则

    C++中派生类对基类成员的访问形式主要有以下两种: 1、内部访问:由派生类中新增成员对基类继承来的成员的访问。 2...

  • 4期c++9月19号

    上午知识点 1.派生类成员的标识与访问同名覆盖原则 当派生类与基类中有相同成员时:1若未强行指名,则通过派生类对象...

  • 2017.9.19

    同名覆盖:派生类与基类中有相同成员时若未强行指明则通过派生类对象使用的是派生类中的同名成员。多重继承,二义性,虚基类

  • C++ 类继承

    C++类的继承要点: 派生类不能直接访问基类的私有成员变量,只能通过基类的公有或保护方法进行访问。 创建派生类对象...

  • 9.19 C++总结

    1.同名覆盖原则 当派生类与基类中有相同成员时: 若未强行指名,则通过派生类对象使用的是派生类中的同名成员。 如要...

  • 2017.9.19

    今天上午主要讲了三个知识点 1.派生类成员的标识与访问同名覆盖原则 当派生类与基类中有相同成员时:1若未强行指名,...

网友评论

      本文标题:C++ - 基类,派生类同名成员与访问范围

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