公有继承、私有继承、保护继承
1. 公有继承
基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员可见,他们作为派生类的成员时,保持原有的状态。基类的私有成员不可见,派生类不可访问基类中的私有成员。
基类成员对派生类对象的可见性对派生类对象而言,基类的公有成员是可见的,其他成员不可见。
所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员。
2. 私有继承。
基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类访问,基类的私有成员是不可见的,派生类不可以访问基类的私有成员。
基类成员对派生类对象的可见性对派生类对象而言,基类的所有成员否是不可见的。
所以,私有继承时,基类的成员只能由直接派生类访问,无法再往下继承。
3. 保护继承
基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的保护成员,并且不能被这个派生类的子类访问,基类的私有成员是不可见的,派生类不可以访问基类的私有成员。
基类成员对派生类对象的可见性对派生类对象而言,基类的所有成员否是不可见的。
所以,保护继承时,基类的成员只能由直接派生类访问,无法再往下继承。