C++ private、protected、public的区别

一、无继承关系

不考虑继承时,三者的访问权限如下:

本类方法外部
private
protected
public


由上表可知,protected的权限与private相同,均为可被本类方法访问,不可被外部访问。因此无继承关系时,protected可被private替代。


二、有继承关系

基类中三种保护级别经不同继承后,组合结果(在子类中获得的保护级别)如下:
在这里插入图片描述

由上表可知,组合结果为基类保护级别和继承方式中级别更高者。即继承只会让访问权限更严格,不会更宽松。


经继承后,不同组合结果的访问权限如下:

子类方法外部
private
protected
public


protected的意义在于,弥补了private与public之间保护程度的空缺。这使得组合结果为protected的基类方法既允许被子类访问(提高便捷性),又不破坏对其在外部的保护(不妥协保护性)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值