C/C++中派生类访问属性详解及其作用介绍

 更新时间:2021年09月06日 16:30:52   作者:我是小白呀  
这篇文章主要介绍了C/C++中派生类访问属性详解及其作用介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

保护继承

由 protected 声明的成员称为 “受保护的成员”, 或简称 “保护成员”.
从用户的角度来看, 保护成员等价于私有成员. 保护成员可以被派生类的成员函数引用.

在这里插入图片描述

派生类成员的访问属性

4 种访问属性:

  • 公用的: 类内和类外都可以访问
  • 受保护的: 类内可以访问, 类外不能访问, 下一层的派生类可以访问
  • 私有的: 类内可以访问, 类外不能访问
  • 不可访问的: 类内和类外都不能访问
继承方式 基类中的成员 访问属性
公用继承 (public) 公用成员和保护成员 在派生类中保持原有访问属性
公用继承 (public) 私有成员 仍为基类私有, 派生类不可访问
私有继承 (private) 公用成员和保护成员 在派生类中成了私有成员
私有继承 (private) 私有成员 仍为基类私有, 派生类不可访问
受保护的继承 (protected) 公用成员和保护成员 在派生类中成了保护成员
受保护的继承 (protected) 私有成员 仍为基类私有, 派生类不可访问

在这里插入图片描述

总结

  • 如果在多级派生时都采用公用继承方式, 那么直到最后一级派生类都能访问基类的公用成员和保护成员
  • 如果采用私有继承的方式, 经过若干次派生之后, 基类的所有的成员已经变成不可访问的了
  • 如果采用菜户继承方式, 在派生类外无法访问派生类中的任何成员. 而且经过多次派生后, 人们很难清楚的记住哪些成员可以访问, 哪些成员不能访问, 很容易出错

注: 实际开发中, 我们通常使用的是公共继承.

到此这篇关于C/C++中派生类访问属性详解及其作用介绍的文章就介绍到这了,更多相关C++派生类访问属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于vector的常见用法详解

    关于vector的常见用法详解

    这篇文章主要介绍了关于vector的常见用法详解,vector本身可以作为数组使用,而且在一些元素个数不确定的场合可以很好地节省空间,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • C++精要分析右值引用与完美转发的应用

    C++精要分析右值引用与完美转发的应用

    C++11标准为C++引入右值引用语法的同时,还解决了一个短板,即使用简单的方式即可在函数模板中实现参数的完美转发。那么,什么是完美转发?它为什么是C++98/03 标准存在的一个短板?C++11标准又是如何为C++弥补这一短板的?别急,本节将就这些问题给读者做一一讲解
    2022-05-05
  • VS2019中在源文件中如何使用自己写的头文件

    VS2019中在源文件中如何使用自己写的头文件

    通过头文件的形式直接调用自定义的函数,从而免去对函数的原型进行声明,本文就详细的介绍一下VS2019中在源文件中如何使用自己写的头文件,感兴趣的可以了解一下
    2021-09-09
  • 详解C语言的预处理效果

    详解C语言的预处理效果

    这篇文章主要为大家介绍了C语言的预处理效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • C++11中的智能指针和垃圾回收使用

    C++11中的智能指针和垃圾回收使用

    本文主要介绍了C++11中的智能指针和垃圾回收使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 使用C++中的ADO对SQLite进行增删改查

    使用C++中的ADO对SQLite进行增删改查

    本文将介绍如何使用C++的ADO (ActiveX Data Objects)对SQLite数据库进行增删改查操作,文中有详细的代码示例,需要的朋友可以参考下
    2023-06-06
  • C语言结构体详细图解分析

    C语言结构体详细图解分析

    C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许你存储不同类型的数据项,本篇让我们来了解C 的结构体
    2022-03-03
  • C++实现LeetCode(53.最大子数组)

    C++实现LeetCode(53.最大子数组)

    这篇文章主要介绍了C++实现LeetCode(53.最大子数组),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言实现扫雷算法简易版

    C语言实现扫雷算法简易版

    这篇文章主要为大家详细介绍了C语言实现扫雷算法简易版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Embarcadero Dev-C++输出中文乱码问题图文详解

    Embarcadero Dev-C++输出中文乱码问题图文详解

    Dev-C++(或者叫做 Dev-Cpp)是Windows环境下的一个轻量级C/C++ 集成开发环境(IDE),下面这篇文章主要给大家介绍了关于Embarcadero Dev-C++输出中文乱码问题的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论