C++中的访问控制与继承

本文探讨了C++中继承体系的访问控制,详细解释了访问修饰符public、protected、private的影响。区分了类成员访问的三种用户类型:派生类中的其他成员、使用派生类的用户和继承自派生类的新类,并通过实例说明了不同继承方式对访问权限的影响。同时澄清了private和inaccessible的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

访问控制与继承

在C++的继承体系中,每个类分别控制着其成员对于派生类来说是否可访问(accessible)。其中涉及到3种访控制修饰符,分别是public\protected\private,本篇文章来讨论关于C++继承中类成员可访问性的理解和判断。

继承体系中两个位置的访问说明符

下面首先给出一个表格清单:
这里写图片描述
从上面的表格中可以我们也可以清楚的知道,某个类对其继承而来的成员访问权限受到两个因素的影响,一是在基类中该成员的访问说明符,二是在派生类的派生列表中的访问说明符

区分类成员的访问用户

这里我用了“用户”一个词,其实不完全正确,因为它不是我们通常理解上的用户,而凡是试图访问类中成员的主体都算作用户。为何需要区分类成员的访问用户,因为我们想要理解继承体系中类成员的访问权限,而访问的发出者是“用户”,自然不同的用户所拥有的访问权限不同,当明确了什么样的用户有什么样的访问权限、这些用户为什么有这种访问权限,便可以理解继承体系中
类成员访问权限这个问题。
举个例子,考虑如下的继承关系:
这里写图片描述
由上面的代码片段可以看出,无论派生访问说明符(即继承的方式)是public还是private,对于派生类中的其他成员,直接基类中的成员的访问权限并没有发生改变。这其实引出了第一种访问的用户——派生类中的其他成员。由上面的例子可以得出结论:派生访问说明符对于派生类的成员(及友元)能否访问其直接基类的成员没什么影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值