本文主要是介绍Android C++系列:C++最佳实践3继承与访问控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 背景
Java中有四种访问控制:public、protected、default、private,它们的使用范围可以用下面一张表概括:
类内部 | 本包 | 子类 | 外部包 | |
---|---|---|---|---|
public | 是 | 是 | 是 | 是 |
protected | 是 | 是 | 是 | 否 |
default | 是 | 是 | 否 | 否 |
private | 是 | 否 | 否 | 否 |
整个结构还是比较简单的,从类内部到本包到子类到外部包权限越来越小,比较好理解也比较好记忆。但是在C++中访问控制要复杂很多,因为不仅有属性和方法的访问控制,还有继承时的派生列表访问说明符。今天我们着重了解访问控制。
2. 受保护的成员protected
在Java中我们一般默认子类可以访问父类的protected,但是C++中要更复杂些。它有三个特征:
- 受保护的成员对于类的用户来说是不可访问的;
- 受保护的成员对于派生类的成员和友元来说是可访问的;
- 派生类的成员或友元只能通过派生类对象来访问积累的受保护成员,派生类对于一个基类对象中的受保护成员没有任何访问特权。
怎么理解第三点呢?举个例子:
cl
这篇关于Android C++系列:C++最佳实践3继承与访问控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!