【C++】——继承和派生

news2024/11/24 16:36:27

 🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯第一题:

🎯 第二题:

🎯 第三题:

🎯 答案:

💻第一题:

💻第二题:

💻第三题:

🎯第一题:

编写一个学生类,学生数据有编号、姓名、年龄、专业和成绩,要求将编号、姓名、年龄数据设计成一个人类Person,并作为学生类Student的基类。创建Student类对象,并使用显示show()函数对数据进行输出。

🎯 第二题:

设计职员类employee,它继承Person类并包含子对象Date类对象。要求将编号、姓名、性别设计成类Person,Date类包含年、月、日;职员类另有部门及职务成员数据。主程序创建职员类对象并输出信息。

🎯 第三题:

已有类Time和Date,要求设计一个派生类Birth,它继承类Time和类Date,并且增加一个数据成员childname用于表示小孩的名字,设计show函数显示信息;主程序创建Birth类对象并调用show()函数显示信息。

💻第一题:

#include <iostream>

using namespace std;

class Person {

private:

string _id;

string _name;

int _age;

public:

Person(string id,string name,int age);

void show();

};

Person::Person(string id,string name,int age) {

_id=id;

_name=name;

_age=age;

}

void Person::show() {

cout<<"编号:"<<_id<<endl;

cout<<"姓名:"<<_name<<endl;

cout<<"年龄:"<<_age<<endl;

}

//派生类

class Student:public Person {

private:

string _major;

int _score;

public:

Student(string id,string name,int age,string major,int score);

void show();

};

Student::Student(string id,string name,int age,string major,int score)

:Person(id,name,age) {

_major=major;

_score=score;

}

void Student::show() {

Person::show();

cout<<"专业:"<<_major<<endl;

cout<<"成绩:"<<_score<<endl;

}

int main() {

Student stu1("s10001","zhangsan",20,"软件工程",95);

stu1.show();

return 0;

}



💻第二题:

#include <iostream>

using namespace std;

class Person {

private:

string _id;

string _name;

string _sex;

public:

Person(string id,string name,string sex);

void show();

};

Person::Person(string id,string name,string sex) {

_id=id;

_name=name;

_sex=sex;

}

void Person::show() {

cout<<"编号:"<<_id<<endl;

cout<<"姓名:"<<_name<<endl;

cout<<"性别:"<<_sex<<endl;

}

class Date {

public:

Date(int y,int m,int d) {

_year=y;

_month=m;

_day=d;

}

void display() {

cout<<"出生日期:"<<_year<<"."<<_month<<"."<<_day<<endl;

}

protected:

int _month,_day,_year;

};

class Employee:public Person {

public:

Employee(string id,string name,string sex,int y,int m,int d,string dept,string duty);

void show();

private:

Date date;

string _dept;

string _duty;

};

/*************************************************************/

Employee::Employee(string id,string name,string sex,int y,int m,int d,string dept,string duty)

      :date(y,m,d),Person(id,name,sex) {

_dept=dept;

_duty=duty;

}

void Employee::show() {

Person::show();

date.display();

cout<<"部门:"<<_dept<<endl;

cout<<"职务:"<<_duty<<endl;

}

/*************************************************************/

int main() {

Employee employee("10001","杨萍","女",1990,9,29,"团委","团委书记");

employee.show();

return 0;

}



💻第三题:

#include <iostream>

using namespace std;

class Time {

public:

Time(int h,int min,int s) {

hours=h;

minutes=min;

seconds=s;

}

void display() {

cout<<"出生时间:"<<hours<<"时"<<minutes<<"分"<<seconds<<"秒"<<endl;

}

protected:

int hours,minutes,seconds;

};

class Date {

public:

Date(int y,int mon,int d) {

year=y;

month=mon;

day=d;

}

void display() {

cout<<"出生日期:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;

}

protected:

int year,month,day;

};

class Birth:public Date,public Time{

public:

Birth(string name,int y,int mon,int d,int h,int min,int s);

void show();

private:

string childname;

};

/********************************************************************/

Birth::Birth(string name,int y,int mon,int d,int h,int min,int s):Date(y,mon,d),Time(h,min,s){

childname=name;

}

void Birth::show(){

cout<<"姓名:"<<childname<<endl;

Date::display();

Time::display();

}

/********************************************************************/

int main() {

    Birth birth("李雷",2003,7,1,13,10,10);

    birth.show();

return 0;

}



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

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

相关文章

详细的完美转发

不要假装努力&#xff0c;结果不会陪你演戏。文章目录 完美转发的使用场景完美转发 完美转发的使用场景 请看下面的这个代码 #include<iostream> using namespace std; void func(int&& t) {cout<<"int&&"<<endl;return; } void…

易云维®医院能源管理系统提供多方案实现医院节能计划

德国卫生部长卡尔劳特巴赫采访时说&#xff1a;“如果我们不赶紧采取有效措施&#xff0c;就会&#xff08;有医院&#xff09;倒闭。” 2022年的德国面临能源危机和通胀挑战&#xff0c;医院系统面临的人员和资金压力再次敲响警钟&#xff0c;正陷入举步维艰的处境。德国医院…

LTspice导入spice模型

一、创建原理图&#xff08;原件的样子&#xff09; 1、下载spice模型 2、用LTspice打开spice模型 3、选中模型名称&#xff0c;选择创建 4、可以自己画模型 导入后都是方块的&#xff0c;可以自己画模型的样子&#xff0c;所有引脚和模型名称都跟器件一样可以移动 da 画模…

突然消失的桌面文件如何恢复?详细教程让你轻松解决问题!

桌面文件突然消失&#xff0c;对于很多人来说&#xff0c;可能是个令人头疼的问题。这些文件可能包含重要的信息&#xff0c;也可能是数日甚至数周的努力成果。那么&#xff0c;当这种情况发生时&#xff0c;我们如何恢复丢失的文件呢&#xff1f;本文将提供一些实用的建议。 1…

mysql之主从复制和读写分离

一、主从复制 1、定义 主mysql上的数据&#xff08;新增或修改库、表里的数据&#xff09;都会同步到从mysql上 2、mysql的主从复制模式&#xff08;面试题&#xff09; &#xff08;1&#xff09;异步复制&#xff08;常用&#xff09;&#xff1a;默认的复制模式。客户端…

巨量千川「全域推广」指南来袭!助力商家开拓新流量

如今&#xff0c;在抖音上进行直播销售的商家&#xff0c;都希望在不影响ROI的情况下&#xff0c;提高整体业务水平&#xff0c;实现高效率的结果。然而&#xff0c;考虑到人货场波动和直播本身的复杂性&#xff0c;许多商家面临着诸如低投放效果、波动的ROI和缺乏GMV增长动力等…

Git企业开发级讲解(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、Git初识1、提出问题2、如何解决--版本控制器3、注意事项 二、Git 安装1、Linux-centos2、…

鱼子酱产业分析:预计2029年将达到5.8亿美元

随着生活水平的提高和人们对美食品味的追求&#xff0c;鱼子酱在各个国家和地区的需求不断上升。尤其是在欧洲、俄罗斯、东亚以及北美地区&#xff0c;鱼子酱市场发展较为成熟&#xff0c;拥有众多忠实的消费者群体。此外&#xff0c;鱼子酱在亚洲市场的受欢迎程度也逐渐上升&a…

【C++初阶(七)】类和对象(下)

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

云原生之使用Docker部署home-page个人导航页

云原生之使用Docker部署home-page个人导航页 一、home-page个人导航页介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载home-page镜像五、部署home-page导航页5.1 创建挂…

论文精读 MediaPipe Hands

MediaPipe Hands:On-device Real-time Hand Tracking MediaPipe手势&#xff1a;设备上的实时手势跟踪 论文地址&#xff1a;2006.10214.pdf (arxiv.org) 源码地址&#xff1a;GitHub - vidursatija/BlazePalm: PyTorch 目录 摘要 介绍 架构 BlazePalm Detector Hand L…

振南技术干货集:深入浅出的Bootloader(1)

注解目录 1、烧录方式的更新迭代 1.1 古老的烧录方式 (怀旧一下&#xff0c;单片机高压烧录器。) 1.2 ISP 与ICP 烧录方式 (还记得当年我们玩过的 AT89S51?) 1.3 更方便的 ISP 烧录方式 1.3.1串口 ISP &#xff08;是 STC 单片机成就了我们&#xff0c;还是我们成就了…

Python 列表List数据复杂操作

一、将列表数据每2个取一个数据添加到新列表中 prov_code [130100000000, 石家庄市, 130200000000, 唐山市, 130300000000, 秦皇岛市, 130400000000,邯郸市,130500000000, 邢台市, 130600000000, 保定市, 130700000000, 张家口市, 130800000000,承德市,130900000000, 沧州市, …

基于51单片机的智能窗控制系统设计

**单片机设计介绍&#xff0c; 基于51单片机的智能窗控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的智能窗控制系统通常是指通过单片机控制窗户的开关和调节&#xff0c;在实现基本的开关功能的同时&…

汽车OBD2蓝牙诊断仪解决方案程序开发

1、因TL718已经为你建立了物理层、数据链层和部分应用层的协议&#xff0c;所以只要OBD2标准应用层协议文本&#xff0c;ISO15031-5 或 SAE J1979&#xff08;这两个协议是相同的内容&#xff09;。 2、TL718诊断接口 1 套或用TL718芯片自建电路。3、家用PC机电脑一台。4、安…

@Accessors使用和详解

一、什么是Accessors注解? RequiredArgsConstructor是Lombok的一个注解&#xff0c;简化了我们对setter和getter方法操作。它可以作用在类上&#xff0c;也可以作用在类的单个属性上。修饰类的时候对这个类的所有属性都是有效的&#xff0c;修饰单个属性的时候&#xff0c;只…

element ui + echarts点击表格显示对应的图形

一、vue封装饼图、树状图、雷达图等组件 目录 resize.js需要utils.js utils.js import { parseTime } from ./yunhis/*** 表格时间格式化*/ export function formatDate(cellValue) {if (cellValue null || cellValue "") return "";var date new Da…

使用yolov8的一些错误

出现这个报错的时候&#xff1a; AutoInstall will run now for ultralytics.nn.modules.conv but this feature will be removed in the future. Recommend fixes are to train a new model using the latest ultralytics package or to run a command with an official YOLO…

新能源充电桩物联网应用之工业4G路由器

新能源充电桩是智慧城市建设中不可缺少且可持续发展的重要设施&#xff0c;而工业4G路由器物联网应用为其提供了更加高效、智能、实时的管理方式。充电桩通过工业4G路由器可以与充电运营商的管理中心建立稳定的连接&#xff0c;实现双向数据传输&#xff0c;为用户提供优质的充…

浪潮服务器安装操作系统

文章目录 一、准备工作1.1 制作启动 U 盘 一、准备工作 一开始认为将镜像文件导入U盘即可&#xff0c;但实操中并不行&#xff0c;得首先将U盘制作成启动盘才行。   首先需要确定安装的版本&#xff0c;我这里要安装的是 CentOS 7.9 版本&#xff0c;镜像文件为 CentOS-7-x86…