C++访问修饰符 public protected private 的区别有哪些?

publicprotectedprivate
访问范围

类的内部√

类的外部√

派生类    √

类的内部√

类的外部×

派生类    √

类的内部√

类的外部×

派生类    ×

不能被类的对象直接访问

继承表现

基类public成员        √

基类protected成员  √

基类private成员      ×

基类public成员        √

基类protected成员  √

基类private成员      ×

基类public成员         ×

基类protected成员    ×

基类private成员        ×

外部访问能力任何外部代码(包括其他类和函数)可以直接访问公有成员受保护成员不能被外部代码直接访问,但可以在派生类的成员函数中访问除了友元函数类内部的其他成员函数外,私有成员无法从类的外部直接访问
默认访问级别类中没有明确指定访问权限的成员默认不是公有的成员永远不会默认为受保护的,除非明确声明如果类成员没有明确指定访问权限,则默认为私有
安全性公有成员较易受到外部代码的影响,因此可能降低类的安全性和封装性受保护成员在保证一定封装性的同时,允许继承体系中的类共享内部状态和行为,提供了一种中等程度的安全性私有成员能够最大限度地保护类的内部状态不被外部破坏,提供良好的封装性和安全性
使用场景当需要为类的用户(包括其他对象和方法)提供直接的访问和服务时,应使用公有成员当设计一个类层次结构,并希望某些成员能被派生类访问但不能被外部访问时,应使用受保护成员当成员仅为类内部使用,且不应被外部直接访问或修改时,应将其设置为私有

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值