c++ 私有和受保护成员继承

问题描述 投票:0回答:1
#include <iostream>
using namespace std;

// Base class
class Base {
  private: 
    int a = 10;
    
   public: void get () {
      
      cout <<"Get:"<< a <<endl;
    }
};

// Derived class
class Child: public Base {
  
};

int main() {

Child Childobj;
Child Childobj.get();

  return 0;   
}

#include <iostream>
using namespace std;

// Base class
class Base {
  private: 
    int a = 10;
    
   public: void get () {
      
      cout <<"Get:"<< a <<endl;
    }
};

// Derived class
class Child: public Base {
  
};

int main() {

Child Childobj;
Child Childobj.get();

  return 0;   
}

我知道

Base
类的私有成员不能被继承,但我在公共
int a;
方法的帮助下访问了私有成员
get()

我的问题是:

Base
类的私有成员是否正在为子对象共享内存,或者子对象只有权限从
Base
类访问?
在 public 和 protected 的情况下,
Base
类的 protected 和 public 成员是否共享子对象的内存?

我的困惑:我的困惑是,我不确定在从

Base
类访问私有和受保护成员时,是否从对象的内存中访问和显示数据成员,以便我知道子对象的当前状态
Child
类对象是什么时候创建的?非常感谢!

c++ object state final
1个回答
0
投票

我可能是错的,但我认为子对象有权访问私有成员,因为私有成员是非静态类型,所以它不与子对象实例共享相同的内存。

© www.soinside.com 2019 - 2024. All rights reserved.