曾在某处看到如下对派生类继承不同方式的解释:
“”“
公有继承:基类的公有成员和保护成员在派生类中保持原有的属性
私有继承:基类的公有成员和保护成员在派生类中成了私有成员
受保护的继承:基类的公有成员和保护成员在派生类中成了保护成员
不管任何继承方式,基类的私有成员都不能被派生类继承
”“”
对于黄底这句话我产生了一定的疑问,通过查询,进行了一下总结:
派生类继承了父类的私有成员,只是不能够访问。比如说可以在公有继承的子类的构造函数中调用父类的构造函数对付类的私有变量赋值,然后再根据赋值兼容规则,将该子类的对象赋给父类的对象,这时再打印父类的私有变量,会发现父类私有变量已被子类的构造函数赋值;
同时,当派生类中没有定义新变量时,构造父类和派生类的实例,然后查看sizeof ,可以发现所占空间相等。