C++学习Day06之继承方式

目录

  • 一、程序及输出
    • 1.1 公共继承
      • 1.1.1 父类中公共成员,子类可以正常访问
      • 1.1.2 父类中保护成员,子类类外不可以访问
      • 1.1.3 父类中私有成员,子类无法访问
    • 1.2 保护继承
      • 1.2.1 父类中公共权限 子类中变为 保护权限
      • 1.2.2 父类中保护权限 子类中变为 保护权限
      • 1.2.3 父类中私有成员 子类无法访问
    • 1.3 私有继承
      • 1.3.1 父类中公共权限 子类中变为私有权限
      • 1.3.2 父类中保护权限 子类中变为私有权限
      • 1.3.3 父类中私有成员 子类无法访问
  • 二、分析与总结


一、程序及输出

1.1 公共继承

1.1.1 父类中公共成员,子类可以正常访问

#include<iostream>
using namespace std;/   公共继承  
class Base1
{
public:int m_A;
protected:int m_B;
private:int m_C;
};class Son1 :public Base1
{
public:void func(){m_A = 100; //父类中 公共权限 子类中变为  公共权限m_B = 100; //父类中 保护权限 子类中变为  保护权限//m_C = 100;// 父类中私有成员,子类无法访问}
};void test01()
{Son1 s1;s1.m_A = 100; //在Son1中 m_A是公共权限  类外可以访问cout<<"son1 m_A值为"<< s1.m_A << endl;//s1.m_B = 100; //在Son1中 m_B是保护权限  类外不可以访问
}
int main(){test01();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.1.2 父类中保护成员,子类类外不可以访问

在这里插入图片描述

1.1.3 父类中私有成员,子类无法访问

在这里插入图片描述

1.2 保护继承

#include<iostream>
using namespace std;
class Base2
{
public:int m_A;
protected:int m_B;
private:int m_C;
};class Son2 : protected Base2
{
public:void func(){m_A = 100;//父类中 公共权限 子类中变为  保护权限m_B = 100;//父类中 保护权限 子类中变为  保护权限//m_C = 100;//父类中私有成员,子类无法访问}
};void test02()
{Son2 s;cout << "son2 "  << endl;//s.m_A = 100;  //子类中 保护权限 无法访问//s.m_B = 100;  //子类中 保护权限 无法访问//s.m_C = 100; //子类本身没有访问权限
}int main(){test02();system("pause");return EXIT_SUCCESS;
}

输出:
在这里插入图片描述

1.2.1 父类中公共权限 子类中变为 保护权限

在这里插入图片描述

1.2.2 父类中保护权限 子类中变为 保护权限

在这里插入图片描述

1.2.3 父类中私有成员 子类无法访问

在这里插入图片描述

1.3 私有继承

#include<iostream>
using namespace std;
class Base3
{
public:int m_A;
protected:int m_B;
private:int m_C;
};
class Son3 :private Base3
{
public:void func(){m_A = 100;  //父类中 公共权限 子类中变为  私有权限m_B = 100;  //父类中 保护权限 子类中变为  私有权限//m_C = 100;//父类中私有成员,子类无法访问}
};
class GrandSon3 :public Son3
{
public:void func(){//m_A = 100;//在Son3中 已经变为私有权限,GrandSon3访问不到//m_B = 100;}
};
void test03()
{Son3 s;//s.m_A = 100;//在Son3中变为私有权限,类外访问不到//s.m_B = 100;//在Son3中变为私有权限,类外访问不到}int main(){test03();system("pause");return EXIT_SUCCESS;
}

1.3.1 父类中公共权限 子类中变为私有权限

在这里插入图片描述

1.3.2 父类中保护权限 子类中变为私有权限

在这里插入图片描述

1.3.3 父类中私有成员 子类无法访问

在这里插入图片描述


二、分析与总结

在 C++ 中,继承方式主要包括公有继承、保护继承和私有继承。这些继承方式决定了基类的成员在派生类中的访问权限。

公有继承(public inheritance):
基类的公有成员在派生类中保持公有性。
基类的保护成员在派生类中变为保护成员。
派生类对象可以访问基类的公有成员。
保护继承(protected inheritance):
基类的公有和保护成员在派生类中变为保护成员。
派生类对象无法直接访问基类的公有成员,只能通过派生类的成员函数访问。
私有继承(private inheritance):
基类的公有和保护成员在派生类中变为私有成员。
派生类对象无法直接访问基类的成员,只能通过派生类的成员函数访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义Linux登录自动提示语

设置提示语的方式 在Linux系统中&#xff0c;可以通过修改几个特定的文件来实现在用户登录时自动弹出提示语。以下是几个常用的方法&#xff1a; 1. 修改/etc/issue文件&#xff1a; 这个文件用于显示本地登录前的提示信息 sudo vi /etc/issue在项目合作的时候&#xff0c;…

平衡二叉树(AVL树)

定义&#xff1a; 左右子树高度之差不超过1左右子树都是平衡二叉树 平衡二叉树的增删操作都离不开二叉树的调整 二叉树调整 LL型&#xff1a;右旋 LR型&#xff1a;左旋右旋 RR型&#xff1a;左旋 RL型&#xff1a;右旋左旋

FPFH特征描述符、对应关系可视化以及ICP配准

一、FPFH特征描述符可视化 C #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/search/kdtree.h> #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d_omp.h>//使用OMP需要添加的头文件 #include <boo…

批量追踪中通快递

在物流信息的管理中&#xff0c;批量追踪中通快递单号一直是个让人头疼的问题。但有了固乔快递查询助手&#xff0c;这一切都变得轻而易举。 固乔快递查询助手&#xff0c;作为市场上备受好评的快递查询软件&#xff0c;专门针对批量查询需求进行了优化。用户只需将中通快递单号…

【Linux】简单的网络计算器的实现(自定义协议,序列化,反序列化)

文章目录 前言一、 服务端1.ServerCal.cc&#xff08;服务器主文件&#xff09;2.ServerCal.hpp3.Sock.hpp(套接字封装)4.TcpServer.hpp(服务器)5.Protocol&#xff08;自定义协议&#xff09; 二、用户端1.ClientCal 三、Log.hpp&#xff08;日志&#xff09;四、makefile 前言…

【Qt学习】QIcon类 + 利用qrc机制设置图片路径(QtCreator)

文章目录 1. QIcon / windowIcon2. setIcon() 与 setwindowIcon()2.1 setIcon() 介绍与使用2.2 setWindowIcon 介绍与使用 3. 路径问题 & qrc机制的引入3.1 绝对路径 / 相对路径 的问题3.2 qrc机制3.3 在QtCreator下利用qrc机制引入图片 1. QIcon / windowIcon QIcon QIco…

单输入Doherty 功率放大器的极限带宽分析(含Matlab分析代码)

单输入Doherty 功率放大器的极限带宽分析&#xff08;含Matlab分析代码&#xff09; 参考论文&#xff1a;高效连续型射频功率放大器研究 DPA的基础理论参考&#xff1a;理想架构的Doherty功率放大器理论与仿真 1、单输入Doherty 功率放大器架构 假设 Doherty 功率放大器的…

介绍7款免费的最佳地图/导航/定位/GIS开源项目

文章目录 1、xdh-map新德汇地图应用类库1.1、独立引用1.2、与MyUI结合使用1.3、快速上手1.3.1、采用项目工程模板创建项目【推荐】1.3.2、 调用组件库功能 2、蚂蚁金服AntV-L7地理空间数据可视分析引擎2.1、AntV-L7简介2.2、核心特性2.3、支持丰富的图表类型2.4、如何使用2.4.1…

反转一个单链表

反转一个单链表 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 需要虚拟节点么&#xff1f; 答&#xff1a;不需要&#xff0c;因为没有删除节点&#xff0c;只是改变了节点的指向。 遍…

计算机设计大赛 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

Rust-知多少?

文章目录 前言1.使用下划线开头忽略未使用的变量2. 变量解构3.常量4.变量遮蔽&#xff08;shadowing&#xff09;5. 类似println!("{}", x); 为啥加感叹号6.单元类型总结 前言 Rust 学习系列&#xff0c;记录一些rust使用小技巧 1.使用下划线开头忽略未使用的变量 …

MySQL跨服务器关联查询

1. 首先确认服务器的Federated引擎是否开启 show engines;修改数据库的配制文件my.ini,(我的my.ini的路径为&#xff1a;D:\ProgramData\MySQL\MySQL Server 5.7/my.ini),将federated添加到my.ini文件中 到MySQL的my.cnf配置文件中修改 在 [mysqld] 下方加入 federated 然后重…

通过前序和中序遍历结果构造二叉树

题目 105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 思路 首先思考&#xff0c;根节点应该做什么。 肯定要想办法确定根节点的值&#xff0c;把根节点做出来&#xff0c;然后递归构造左右子树即可。 我们先来回顾一下&#xff0c;前序遍历和…

全网超全的测试类型详解,再也不怕面试答不出来了!

在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题&#xff0c;比如你说说“黑盒测试和白盒测试的区别&#xff1f;”&#xff0c;“你们公司做灰度测试么&#xff1f;", ”α测试和β测试有什么不一样&#xff1f;“&#xff0…

review 10

整理磁盘操作的完整流程&#xff0c;如何接入虚拟机&#xff0c;是否成功识别&#xff0c;对磁盘分区工具的使用&#xff0c;格式化&#xff0c;挂载以及取消挂载、复习cp、mv和find指令 1&#xff1a;U盘接入虚拟机 在弹出窗口直接选择 虚拟机-可移动设备-找到u盘-连接 2&a…

matlab代码--基于注水法的MIMO信道容量实现

今天接触一个简单的注水法程序&#xff0c;搞懂数学原理即可看懂代码。 1 注水法简介 详细原理可以参考&#xff1a; MIMO的信道容量以及实现 大致理论就是利用拉格朗日乘子法&#xff0c;求解信道容量的最大化问题&#xff0c;得到的解形如往水池中注水的形式&#xff0c;最…

过字符设备驱动分步注册过程实现LED驱动的编写,编写应用程序测试,发布到CSDN

头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #d…

信号系统之移动平均滤波器

1 通过卷积实现 移动平均滤波器的工作原理是平均输入信号中的多个点&#xff0c;以产生输出信号中的每个点。在方程式形式中&#xff0c;这样写&#xff1a; 其中是 x 输入信号&#xff0c;y 是输出信号&#xff0c;M 是平均值中的点数。例如&#xff0c;在 5 点移动平均滤波器…

基于51单片机的智能台灯的设计与实现

摘 要:针对青少年因坐姿不正确、灯光亮度不合适、用眼过度等原因易导致的近视问题,文中提出使用51单片机作为主控制单元,选用红外检测、光敏检测、蓝牙通信、蜂鸣器和模数转换等模块,设计了一款智能台灯。该智能台灯具有节能、预防近视等功能。经测试,该台灯具有保护视力的…

php基础学习之常用系统函数

一&#xff0c;有关输出的语句/函数 echo语句 用于输出一个或多个字符串 print语句 用于输出一个字符串&#xff08;用句点连接的多个字符串本质是一个字符串&#xff09;&#xff0c;与echo类似&#xff0c;但返回值为1 printf()函数 用于格式化输出字符串&#xff0c;类似于C…