C++继承与派生——(3)公有继承的访问权限的变化

news2025/2/3 11:05:07

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
缺乏明确的目标,一生将庸庸碌碌!

一起加油!

        当类的继承方式是公有继承时,基类的公有成员和保护成员被派生类继承后成为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。基类的私有成员虽然被派生类继承下来,但是派生类的成员无法访问它们。基类的公有成员被派生类继承后作为派生类的公有成员,可以被派生类的对象从类外访问。

#include<iostream>
#include<string>
using namespace std;
class Person{
	private:
		string name;
		int age;
		char sex;
	public:
		void setPerson(string pName,int pAge,char pSex){
			name=pName;
			age=pAge;
			sex=pSex;
		}
		string getName(){
			return name;
		}
		int getAge(){
			return age;
		}
		char getSex(){
			return sex;
		}
		void print();
}; 

void Person::print(){
	cout<<"姓名:"<<name<<endl;
	cout<<"年龄:"<<age<<endl;
	cout<<"性别:"<<sex<<endl;
}

class Student:public Person{
	private:
		int ID;
		double score;
	public:
		Student(string pName,int pAge,char pSex,int pID,double pScore){
			setPerson(pName,pAge,pSex);
			ID=pID;
			score=pScore;
		}
		int getID(){
			return ID;
		}
		double getScore(){
			return score;
		}
		void print(); 
};

void Student::print(){
	cout<<"学号:"<<ID<<endl;
	cout<<"分数:"<<score<<endl; 
}

int main(){
	Student s("李华",18,'F',20230011,95);
	s.Person::print();
	s.print();
	return 0;
}

        通过公有继承方式,基类 Person 中的公有成员 SetStudent( )和 print()被继承后作为派生类公有成员,派生类的成员可以直接访问它们,派生类的对象在类外也可以直接访问它们。通过派生类对象访问公有成员 print 时,要注意派生类重新定义了和基类同名的公有成员函数 print(),因此需要使用域作用运算符进行区分;基类 Person 中的私有成员虽然被派生类继承下来,但是派类新定义的成员不能直接访问他们,必须通过从基类继承过来的成员间接访问。

        以上就是我对C++继承与派生——(3)公有继承的访问权限的变化的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++继承与派生的理解,请持续关注我哦!!! 

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

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

相关文章

利用Jmeter做接口测试(功能测试)全流程分析!

利用Jmeter做接口测试怎么做呢&#xff1f;过程真的是超级简单。 明白了原理以后&#xff0c;把零碎的知识点填充进去就可以了。所以在学习的过程中&#xff0c;不管学什么&#xff0c;我一直都强调的是要循序渐进&#xff0c;和明白原理和逻辑。这篇文章就来介绍一下如何利用…

中小工厂更适合什么样的自动仓储管理系统?

阅读本文你将了解中小工厂更适合什么样的自动仓储管理系统&#xff1a;一、确定自身规模&#xff1b;二、考虑功能配置&#xff1b;三、寻求拓展能力。 “我们工厂年产值3亿左右&#xff0c;算是个中小工厂吧&#xff0c;但是上了精细化的仓库管理系统之后&#xff0c;为了适应…

工具系列:TimeGPT_(2)使用外生变量时间序列预测

文章目录 TimeGPT使用外生变量时间序列预测导入相关工具包预测欧美国家次日电力价格案例 TimeGPT使用外生变量时间序列预测 外生变量在时间序列预测中非常重要&#xff0c;因为它们提供了可能影响预测的额外信息。这些变量可以包括假日标记、营销支出、天气数据或与你正在预测…

一个卖美妆的 一个月招了数十万代理!月销售额破亿 你敢相信吗?

商业模式永不过时 大家好&#xff0c;我是吴军&#xff0c;一家软件公司的产品经理 今天我们来聊一下这个纪炫商城 其实&#xff0c;说这个纪炫商城之前&#xff0c;我想跟各位企业家老板聊几句实在话 作为公司两百多号技术的&#xff0c;一个拥有五年软件开发经验的产品经理…

Michael.W基于Foundry精读Openzeppelin第45期——ERC20FlashMint.sol

Michael.W基于Foundry精读Openzeppelin第45期——ERC20FlashMint.sol 0. 版本0.1 ERC20FlashMint.sol 1. 目标合约2. 代码精读2.1 maxFlashLoan(address token)2.2 flashFee(address token, uint256 amount)2.3 flashLoan(IERC3156FlashBorrower receiver, address token, uint…

vue2中自定义右击菜单--vue-contextmenujs

第一步我们先安装这个依赖 npm install vue-contextmenujs 第二步把我们的依赖引入到全局中 import Contextmenu from vue-contextmenujs; Vue.use(Contextmenu) 第三步在我们需要右击菜单的代码上增加如下代码 第四步在方法中写入方法 当然其中还是有很多别的属性&#x…

Java web班级管理系统jsp【班级管理系统】(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

【华为机试】2023年真题B卷(python)-发广播

一、题目 题目描述&#xff1a; 某地有N个广播站&#xff0c;站点之间有些有连接&#xff0c;有些没有。有连接的站点在接受到广播后会互相发送。 给定一个N*N的二维数组matrix,数组的元素都是字符’0’或者’1’。 matrix[i][j]‘1’,则代表i和j站点之间有连接&#xff0c;mat…

项目零散记录

Ts托管 仅本项目禁用本地vscode内置的ts服务 提交代码前的检查 husky(哈士奇)工具&#xff08;是一个git hooks工具&#xff09; 1、安装 pnpm dlx husky-init && pnpm install安装的时候&#xff0c;出现如下报错 解决方案&#xff0c;需要先执行git init初始化…

【QML-布局】

QML编程指南 VX&#xff1a;hao541022348 ■ 布局■ Manual Positioning 手动定位■ Anchors 锚定位■ Positioners 定位器■ Row&#xff08;行定位器&#xff09;■ Column &#xff08;列定位器&#xff09;■ Grid&#xff08;表格定位器&#xff09;■ Flow&#xff08;流…

打印各种形状

package org.example;public class Demo {public static void main(String[] args) {//打印长方形printDemo1();//打印有1定空隙的长方形printDemo2();//平行四边形printDemo3();//三角形printDemo4();//菱形printDemo5();//空心菱形printDemo6();}private static void printDe…

【JVM】垃圾回收理论

一、关于回收目标 在前面我们已经了解到&#xff0c;JVM的内存模型划分为多个区域&#xff0c;由于不同区域的实现机制以及功能不同&#xff0c;那么各自的回收目标也不同。一般来说&#xff0c;内存回收主要涉及以下三个区域&#xff1a; 虚拟机栈/本地方法栈&#xff1a;顾名…

Markdown之高频语法介绍(二十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Ionic实战二十七:移动端录音方案及Nginx部署配置

文章目录 1.最终效果预览2.实现思路说明3.移动端外壳集成iframe4.视频页nginx配置5.组态页iframe集成6.组态页Nginx配置7.Nginx启动及关闭8.H5页面录音1.最终效果预览 2.实现思路说明 摄像头对接的海康的或者大华,将设备集成到青柿视频平台中,这样视频的播放用video标签即可…

promise的使用和实例方法

前言 异步,是任何编程都无法回避的话题。在promise出现之前,js中也有处理异步的方案,不过还没有专门的api能去处理链式的异步操作。所以,当大量的异步任务逐个执行,就变成了传说中的回调地狱。 function asyncFn(fn1, fn2, fn3) {setTimeout(() > {//处理第一个异步任务fn1…

12.26_黑马数据结构与算法笔记Java

目录 243 图 Floyd Warshall 算法实现2 244 图 Floyd Warshall 算法实现3 245 图 Floyd Warshall 算法实现4 246 图 最小生成树 Prim 247 图 最小生成树 Kruskal 248 图 并查集 1 249 图 并查集 2 250 图 并查集 路径压缩 251 图 并查集 UnionBySize 252 贪心算法 介绍…

vue3开发一个todo List

创建新的 Vue 3 项目&#xff1a; 按装vue3的 工具 npm install -g vue/cli创建一个新的 Vue 3 项目&#xff1a; vue create vue3-todolist进入项目目录&#xff1a; cd vue3-todolist代码&#xff1a; 在项目的 src/components 目录下&#xff0c;创建一个新的文件 Todo…

蓝桥杯c/c++程序设计——冶炼金属

冶炼金属 问题描述 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V&#xff0c;V 是一个正整数&#xff0c;这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X&#xff0c;当普通金属 O 的数目不足 V 时&#xff0…

基于yolov8,制作停车位计数器(附源码)

大家好&#xff0c;YOLO(You Only Look Once) 是由Joseph Redmon和Ali开发的一种对象检测和图像分割模型。 YOLO的第一个版本于2015年发布&#xff0c;由于其高速度和准确性&#xff0c;瞬间得到了广大AI爱好者的喜爱。 Ultralytics YOLOv8则是一款前沿、最先进(SOTA)的模型&a…

随记-语义分割

Semantic Segmentation 什么是语义分割全卷积网络FCN摘要 什么是语义分割 语义分割 Semantic Segmentation 旨在对图像的每个像素进行分类&#xff0c;将其分配给预定义的语义类别。 &#xff08;检测图像中的物体并按属性分类&#xff09; 实例分割 Instance Segmentation 实…