C++ 公有继承,私有继承和保护继承

三种访问权限

public:可以被任意实体访问
protected:只允许子类及本类的成员函数访问
private:只允许本类的成员函数访问

(友元函数可以访问这三种访问权限的成员)
三种继承方式

public 继承    
protect 继承
private 继承

组合结果

基类中      继承方式             子类中

public     & public继承        => public
public     & protected继承     => protected    
public     & private继承       => private

protected  & public继承        => protected
protected  & protected继承     => protected    
protected  & private继承       => private

private    & public继承        => 子类无权访问
private    & protected继承     => 子类无权访问
private    & private继承       => 子类无权访问

由以上组合结果可以看出
1、public继承不改变基类成员的访问权限
2、private继承使得基类所有成员在子类中的访问权限变为private
3、protected继承将基类中public成员变为子类的protected成员,其它成员的访问 权限不变。
4、基类中的private成员不受继承方式的影响,子类永远无权访问。

你可能感兴趣的:(C++ 公有继承,私有继承和保护继承)