当前位置: 首页 > news >正文

类的继承

  • 类可以继承class或struct:
  1. 继承class时,默认继承方式是private
  2. 继承struct时,默认继承方式是public
  • 继承方式(private成员是无法被继承的):
  1. public继承:继承了父类的public和protected成员,并保留的可见性
  2. protected继承:继承了父类的public和protected成员,并将他们的可见性改为protected
  3. private继承:继承了父类的public和protected成员,并将他们的可见性改为private
 用表格的方式更加直观
继承方式\成员可见性publicprotectedprivate
publicpublicprotected无法继承
protectedprotectedprotected无法继承
privateprivateprivate无法继承
 
 
 
 
 
 
【注意】
  • 子类能访问父类的protected成员,如:
class Base
{
protected:
    void test();
};
 
class Derive : public Base    //继承方式随意
{
public:
    void testPro()
    {
        Base::test();    //此处可以调用父类的protected成员
    }
};
  • 只有通过public继承的方式,产生的派生类才能转换为基类
Derive derive;
Base * base = &derive;    //如果派生的时候用的是protected或者private方式,会报错,因为这样派生的类,其成员的可访问性和基类不一样了

 

转载于:https://www.cnblogs.com/cyf333333/p/5517195.html

相关文章:

  • 【译】Activitys, Threads和 内存泄露
  • Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams
  • [Angularjs]ng-select和ng-options
  • eclipse实现JavaWeb应用增量打包
  • AngularJS之Filter(二)
  • nginx 负载服务器优化
  • 【SSH网上商城项目实战14】商城首页UI的设计
  • eclipse+python+selenium+mysqldb环境搭建
  • 取模和与运算的优化
  • STORM_0007_Multi-Lang protocol of Storm/多语言协议的翻译
  • Jquery 中map()函数的用法
  • 大公司都有哪些开源项目~~~简化版
  • Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
  • Arm开发板+Qt学习之路-multiple definition of
  • 清除windows系统垃圾文件简易脚本(bat)
  • [译] 怎样写一个基础的编译器
  • Angular 响应式表单 基础例子
  • java2019面试题北京
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue-loader 源码解析系列之 selector
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 免费小说阅读小程序
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 系统认识JavaScript正则表达式
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​水经微图Web1.5.0版即将上线
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 计算机视觉入门
  • (03)光刻——半导体电路的绘制
  • (AngularJS)Angular 控制器之间通信初探
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET Remoting学习笔记(三)信道
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 中创建支持集合初始化器的类型
  • .php文件都打不开,打不开php文件怎么办
  • @ConfigurationProperties注解对数据的自动封装
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [Codeforces] combinatorics (R1600) Part.2
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [English]英语积累本
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本
  • [HDU3710]Battle over Cities
  • [java/jdbc]插入数据时获取自增长主键的值
  • [json]定义、读写
  • [LeetCode] 2.两数相加
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法