设为首页 加入收藏

TOP

9.3.3 继承类成员的访问级别
2013-10-07 12:39:48 来源: 作者: 【 】 浏览:77
Tags:9.3.3 继承 成员 访问 级别

9.3.3  继承类成员的访问级别

我们知道,如果在派生类的定义中没有为基类提供访问说明符,则默认的访问说明符是private,结果是从基类继承的public和protected成员在派生类中成为private。基类的private成员仍然是基类所私有的,因此不能被派生类的成员函数访问。事实上,无论派生类定义中为基类指定怎样的访问说明符,这些成员始终都是基类的私有成员。

我们还使用过public作为基类的说明符。该说明符赋予派生类中的基类成员与原来相同的访问级别,因此public成员仍然是public,protected成员仍然是protected。

最后一种可能性是将基类声明为protected,结果是从基类继承的public成员在派生类中成为protected成员,而protected成员(和private成员)在派生类中仍然保持原来的访问级别。图9-3对这些情况作了总结。

 
(点击查看大图)图  9-3

图9-3看起来可能有点复杂,不过我们可以将其简化为与派生类的继承成员有关的3点:

如果基类被声明为private,其成员在派生类中永远都不可访问。

如果基类被声明为public,其成员在派生类中的访问级别保持不变。

如果基类被声明为protected,其public成员在派生类中将成为protected。

能够改变派生类中继承成员的访问级别,给予我们某种程度的灵活性,但不要忘记基类中指定的级别是不能放宽的。我们只能使访问级别更加严格,这意味着如果想在派生类中改变访问级别,则基类需要有public成员。这一点似乎与为了保护数据不受非授权访问而将其封装在类中的思想相悖,但正如即将看到的那样,我们经常需要以这样的方式定义基类,因为它们的唯一用途是作为定义其他类的基础,而非用来实例化对象。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇9.6.2 使用指向类对象的指针 下一篇9.3.2 声明类的保护成员

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: