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

2016-01-22  本文已影响241人  Mitchell

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

//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:一般来说,基类和派生类不定义同名成员变量。

访问范围说明符

上一篇 下一篇

猜你喜欢

热点阅读