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

C++继承的三种方式[ACCESS]

C++继承的定义

两个类的继承关系在派生类中声明,派生类定义使用以下语法:
class DerivedClass: [ACCESS] BaseClass{
//
};
冒号(:)后的[ACCESS]是继承的最高权限级别符,可以是以下三个值(存取权限级别)的其中之一:
public,公共权限,三级(高)
protected,保护权限,二级
private,私有权限,一级(低)
由[ACCESS]的这三个值,从而引出了C++继承的三种方式:
1、公共继承,[ACCESS]是public
2、保护继承,[ACCESS]是protected
3、私有继承,[ACCESS]是private
首先明确一点:基类BaseClass的private成员,在派生类DerivedClass中是无法访问,即不能被继承。

最高权限级别符[ACCESS]

最高权限级别符[ACCESS]的意思是:
在派生类DerivedClass中,继承自基类BaseClass的成员的级别,高于[ACCESS]级别的都将被视为[ACCESS]级别;等于、低于[ACCESS]级别的,原样不动。基类BaseClass的private成员不被继承。

C++继承的三种方式详解如下:

一、公共继承,[ACCESS]是public

[ACCESS]为public时,基类BaseClass的成员级别在派生类DerivedClass中都不变,即public的继续是public、protected的继续是protected,private不被继承。

二、保护继承,[ACCESS]是protected

[ACCESS]为protected时,在派生类DerivedClass中,基类BaseClass的成员级别是public的修改为protected,原来是protected的继续是protected,private不被继承。

三、私有继承,[ACCESS]是private

[ACCESS]为private时,在派生类DerivedClass中,基类BaseClass的成员级别是public和protected的都修改为private,基类BaseClass的private成员不被继承。

实例源码

源码中注释内容有错误两字时,表示此行会发生编译错误,将对应行前的注释删除,再编译即可重现错误
D:\YcjWork\CppTour>vim c2006.cpp

#include <iostream>
using namespace std;/*** 类继承的3种方式
*/// 基类
class Base {
public:int pub;
protected:int prot;
private:int priv;
};// 公有继承
class PublicDerived : public Base {
public:void test() {pub = 1; // 正确,Base的public成员prot = 1; // 正确,Base的protected成员继承为protected// priv = 1; // 错误,Base的private成员不可访问}
};// 保护继承
class ProtectedDerived : protected Base {
public:void test() {pub = 1; // 正确,Base的public成员变为protectedprot = 1; // 正确,Base的protected成员保持为protected// priv = 1; // 错误,Base的private成员不可访问}
};// 私有继承
class PrivateDerived : private Base {
public:void test() {pub = 1; // 正确,Base的public成员变为privateprot = 1; // 正确,Base的protected成员变为private// priv = 1; // 错误,Base的private成员仍不可访问}
};int main() {PublicDerived pub_derived;PrivateDerived priv_derived;ProtectedDerived prot_derived;// 测试基类的访问权限pub_derived.pub = 2; // 正确,PublicDerived的public成员// prot_derived.pub = 1; // 错误,ProtectedDerived的protected基类成员不可访问// priv_derived.pub = 1; // 错误,PrivateDerived的private基类成员不可访问cout << "pub_derived.pub: " << pub_derived.pub << endl;//cout << "prot_derived.pub: " << prot_derived.pub << endl; // 错误,ProtectedDerived的protected基类成员不可访问//cout << "priv_derived.pub: " << priv_derived.pub << endl; // 错误,PrivateDerived的private基类成员不可访问return 0;
}

编译运行

D:\YcjWork\CppTour>gpp c2006D:\YcjWork\CppTour>g++ c2006.cpp -o c2006.exeD:\YcjWork\CppTour>c2006
pub_derived.pub: 2D:\YcjWork\CppTour>

运行截屏
C++继承的三种方式

(全文完)

相关文章:

C++继承的三种方式[ACCESS]

C继承的定义 两个类的继承关系在派生类中声明&#xff0c;派生类定义使用以下语法&#xff1a; class DerivedClass: [ACCESS] BaseClass{ /…/ }; 冒号&#xff08;:&#xff09;后的[ACCESS]是继承的最高权限级别符&#xff0c;可以是以下三个值&#xff08;存取权限级别&am…...

idea 同一个项目不同模块如何设置不同的jdk版本

在IntelliJ IDEA中&#xff0c;可以为同一个项目中的不同模块设置不同的JDK版本。这样做可以让你在同一个项目中同时使用多个Java版本&#xff0c;这对于需要兼容多个Java版本的开发非常有用。以下是设置步骤&#xff1a; 打开项目设置&#xff1a; 在IDEA中&#xff0c;打开你…...

1-仙灵之谜(区块链游戏详情介绍)

1-仙灵之谜&#xff08;区块链游戏详情介绍&#xff09; 前言&#xff08;该游戏仅供娱乐&#xff09;正文 前言&#xff08;该游戏仅供娱乐&#xff09; 依稀记得本科那会儿参加了一个区块链实验室&#xff0c;那时每周末大家都会爬山或者抽出一下午讨论区块链以及未来&#x…...

基于51单片机的温湿度上下限监测预警proteus仿真

地址&#xff1a;https://pan.baidu.com/s/1hSprWBYhKKx8Txzaj33YPA?pwdjp3d 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMic…...

考核总结.

事件循环 单线程的js在处理异步事件时进行的一种循环过程。 在 JS中任务分为同步与异步任务&#xff0c;其中异步任务又分为两种&#xff1a;宏任务和 微任务。宏任务和微任务的执行顺序&#xff1a;总方针是先同步再异步&#xff0c;异步中先微任务&#xff0c;在宏任务。一次…...

后端学习路线

后端学习路线 一、编程语言 至少需要学习一门编程语言&#xff0c;建议学习JAVA和GO语言。 二、数据库 数据库分为关系型数据库和非关系型数据库&#xff0c;区别在于分关系型数据库常用于大数据&#xff0c;而非关系型数据库一般不在大数据方面使用。 关系型数据库&#x…...

车辆重识别(注意力 U-Net:学习在哪些区域寻找胰腺)论文阅读2024/10/01

什么是注意力机制&#xff1f; 什么是加性注意力&#xff1f; 大致说一下流程&#xff1a; 对于一张特征图来说&#xff0c;对于这张图中的每一个像素向量&#xff08;例如a&#xff09;&#xff0c;计算该向量与所有像素向量的相似度&#xff0c;对这些相似度进行激活函数…...

【区别】git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件

git restore --staged <文件> 和 git reset HEAD <文件> 都可以用于取消已暂存的文件&#xff0c;但它们的工作原理和适用场景有所不同。以下是对这两个命令的详细比较&#xff1a; 1. 命令概述 git restore --staged <文件>&#xff1a; 专门用于将指定文件…...

void类型

编程语言中的void类型是一种特殊的数据类型&#xff0c;它表示不存在任何值。void, 无或者空类型。大部分编程语言支持void, 用做函数无返回值类型。最早ALGOL 68引入void类型。 void的特别使用 经典C缺乏void类型&#xff0c;函数可以不指定返回值&#xff0c;默认是整型int.…...

10/1 力扣 49.字母异位词分组

基本知识&#xff1a; 关于字符串的排序&#xff1a; 1.多个字符串排序 1.1使用python内置的sorted() 使用该函数后原对象并不发生变化 1.2若多个字符串使用列表进行存储&#xff0c;使用列表的sort()方法 使用该函数后原对象原地变化 2.对单个字符串里的字母进行排序 使…...

✨机器学习笔记(六)—— ReLU、多分类问题、Softmax、Adam、反向传播

Course2-Week2: https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Advanced%20Learning%20Algorithms/week2机器学习笔记&#xff08;六&#xff09; 1️⃣ReLU&#xff08;Rectified Linear Unit&#xff09;2️⃣多分类问题3️⃣Softmax4️⃣Adam5…...

Xshell7下载及服务器连接

一、Xshell-7.0.0164p、Xftp 7下载 1.1、文件下载 通过网盘分享的文件&#xff1a;xshell 链接: https://pan.baidu.com/s/1qc0CPv4Hkl19hI9tyvYZkQ 提取码: 5snq –来自百度网盘超级会员v2的分享 1.2、ip连接 下shell和xftp操作一样&#xff1a;找到文件—》新建—》名称随…...

SQL Server—的数据类型

SQL Server—的数据类型 在 SQL Server 数据库中&#xff0c;数据类型是定义数据模型的基础&#xff0c;它们决定了数据在数据库中的存储方式和格式。正确选择数据类型不仅可以优化存储空间&#xff0c;还能提高查询性能和数据完整性。 1文本类型 文本类型&#xff1a;字符数…...

WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!

前言 今天大姚给大家分享一套基于.NET 8.0 LayUI的快速开发框架&#xff0c;项目完全开源、免费&#xff08;MIT License&#xff09;且开箱即用&#xff1a;WaterCloud。 可完全实现二次开发让开发更多关注业务逻辑。既能快速提高开发效率&#xff0c;帮助公司节省人力成本&…...

数据结构-LRU缓存(C语言实现)

遇到困难&#xff0c;不必慌张&#xff0c;正是成长的时候&#xff0c;耐心一点&#xff01; 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…...

javacv FFmpegFrameGrabber 阻塞重连解决方法汇总

JavaCV中FrameGrabber类可以连接直播流地址, 进行解码, 获取Frame帧信息, 常用方式如下 FrameGrabber grabber new FrameGrabber("rtsp:/192.168.0.0"); while(true) {Frame frame grabber.grabImage();// ... } 在如上代码中, 若连接地址网络不通, 或者连接超时…...

自然语言处理问答系统技术

自然语言处理问答系统技术 随着人工智能的不断发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;技术已成为推动智能问答系统发展的核心技术。问答系统是利用NLP来解析用户提出的问题&#xff0c;并从知识库中找到最相关的答案。在许多应用中&#xff0c;如智能客服、…...

交换机和路由器的区别

交换机和路由器的区别主要体现在以下几个方面&#xff1a; 工作层次不同&#xff1a;交换机通常工作在OSI模型的数据链路层&#xff08;第二层&#xff09;&#xff0c;主要根据MAC地址进行数据包转发。而路由器则工作在OSI模型的网络层&#xff08;第三层&#xff09;&#xf…...

JavaScript Array(数组)

JavaScript Array(数组) JavaScript 中的数组是一种特殊的对象,用于存储一系列有序的值。数组是 JavaScript 中非常强大的数据结构,广泛用于各种编程任务。本文将详细介绍 JavaScript 数组的特性、用法和操作方法。 数组的创建 在 JavaScript 中,创建数组有多种方式: …...

示例说明:elasticsearch实战应用

Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎&#xff0c;广泛应用于日志分析、全文搜索、数据可视化等领域。以下是 Elasticsearch 实战应用的一些关键点和步骤&#xff1a; 1. 环境搭建 首先&#xff0c;你需要在你的环境中安装和配置 Elasticsearch。 安装 E…...

3步解锁百度网盘下载限速:零成本体验高速下载的完整指南

3步解锁百度网盘下载限速&#xff1a;零成本体验高速下载的完整指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘的蜗牛速度而苦恼吗…...

【ElevenLabs Creator计划终极避坑手册】:基于137份真实申请案例的数据复盘——高通过率申请者的3个共性特征

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs Creator计划全景认知与申请价值重定义 ElevenLabs Creator 计划并非传统意义上的 API 试用通道&#xff0c;而是面向内容创作者、开源贡献者与教育实践者的深度协作生态入口。其核心价值已从…...

ChatGPT 2026功能清单泄露事件(OpenAI内部合规审查文档节选):含未公开的「因果推理引擎」与「合规沙盒模式」

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT 2026功能清单泄露事件概览 事件背景与时间线 2024年11月&#xff0c;一段标注为“OpenAI Internal – GPT-2026 Roadmap Draft v3.7”的加密ZIP文件在多个匿名开发者论坛意外传播。该文件包含…...

多波束声呐接收机与信号处理算法【附程序】

✨ 长期致力于多通道声呐接收机、电路设计、FPGA、数字信号处理、波束形成研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;小型化96通道接收机硬件电路…...

通过稳定的路由与容灾机制保障关键业务中的AI服务连续性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过稳定的路由与容灾机制保障关键业务中的AI服务连续性 在将大模型能力集成到关键业务流程时&#xff0c;服务的连续性与可靠性是…...

终极视频字幕提取指南:用Video-subtitle-extractor轻松获取87种语言字幕

终极视频字幕提取指南&#xff1a;用Video-subtitle-extractor轻松获取87种语言字幕 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕…...

5分钟快速上手:roop-unleashed AI换脸神器完全指南

5分钟快速上手&#xff1a;roop-unleashed AI换脸神器完全指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要在几分钟内制作专业级AI换脸视频吗&…...

QT 导出可执行 EXE 文件的方法

简介 本文分为两部分 第一部分导出exe文件&#xff0c;但是此文件需要很多其他文件支持&#xff0c;就是在一个文件夹里&#xff0c;里面不仅有exe&#xff0c;还有很多支持文件&#xff0c;使用的时候需要拷贝整个文件夹。 第二部分是单独导出exe&#xff0c;实际是在第一部…...

Get-cookies.txt-LOCALLY:浏览器Cookie本地导出终极指南

Get-cookies.txt-LOCALLY&#xff1a;浏览器Cookie本地导出终极指南 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在数字时代&#xff0c;浏览器…...

争分夺秒与步步为营:Infoseek舆情系统如何重构危机响应的时间哲学

“黄金4小时”甚至“黄金1小时”&#xff0c;是公关行业奉行的铁律。然而&#xff0c;为了追求速度而仓促发出的声明&#xff0c;常常因为事实核查不清、逻辑存在漏洞或情感表达不当&#xff0c;引发更猛烈的“二次翻车”。这种“翻车”对企业公信力的伤害&#xff0c;往往比原…...