public:
公有继承时,对基类中的公有成员和保护成员的访问属性都不变,而对基类的私有成员则不能访问。具体说,就是基类的公有成员和保护成员被继承到派生类中以后同样成为派生类的公有成员和保护成员,派生类中新增成员对他们可以直接访问,派生类的对象只能访问继承的基类公有成员。但是派生类的新增成员和派生类的对象都不能访问基类的私有成员。
派生类新增成员对基类数据权限 派生class对象访问权限
|public |public |有 |有|
|protected|protected | |有 无|
|private |private |无 |无|
protected:
在保护继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的保护成员,而基类的私有成员在派生类中不能访问。因为基类的公有成员和保护成员在派生类中都成了保护成员,所以派生类的新增成员可以直接访问基类的公有成员和保护成员,而派生类的对象不能访问它们(类的对象也是处于类外的,不能访问类的保护成员)。对基类的私有成员,派生类的新增成员函数和派生类对象都不能访问。
派生类新增成员对基类数据权限 派生class对象访问权限public protected 有 无
protected protected 有 无
private private 无 无
private:
在私有继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的私有成员,而基类的私有成员在派生类中不能访问。派生类的新增成员可以直接访问基类的公有成员和保护成员,但是在类的外部通过派生类的对象不能访问它们。而派生类的成员和派生类的对象都不能访问基类的私有成员。
派生类新增成员对基类数据权限 派生class对象访问权限
public private 有 无
protected private 有 无
private private 无 无