公有继承、私有继承、保护继承

1. 公有继承

基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员可见,他们作为派生类的成员时,保持原有的状态。基类的私有成员不可见,派生类不可访问基类中的私有成员。

基类成员对派生类对象的可见性对派生类对象而言,基类的公有成员是可见的,其他成员不可见。

所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员。

2. 私有继承。

基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类访问,基类的私有成员是不可见的,派生类不可以访问基类的私有成员。

基类成员对派生类对象的可见性对派生类对象而言,基类的所有成员否是不可见的。

所以,私有继承时,基类的成员只能由直接派生类访问,无法再往下继承。

3. 保护继承

基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的保护成员,并且不能被这个派生类的子类访问,基类的私有成员是不可见的,派生类不可以访问基类的私有成员。

基类成员对派生类对象的可见性对派生类对象而言,基类的所有成员否是不可见的。

所以,保护继承时,基类的成员只能由直接派生类访问,无法再往下继承。

posted @ 2013-04-02 14:04  _HK_  阅读(586)  评论(0编辑  收藏  举报