3.18_C++_day6_作业

作业要求:

程序代码:

#include <iostream>using namespace std;class Animal
{
private:string name;string color;int *age;
public://无参构造函数Animal(){cout << "Animal::无参构造函数" << endl;}//有参构造函数Animal(string name,string color,int age):name(name),color(color),age(new int(age)){cout << "Animal::有参构造函数" << endl;}//析构函数~Animal(){delete age;cout << "Animal::析构函数" << endl;}//拷贝构造函数Animal(const Animal &other):name(other.name),color(other.color),age(new int(*other.age)){cout << "Animal::拷贝构造函数" << endl;}//拷贝赋值函数Animal &operator=(const Animal &other){if(this !=&other){name = other.name;color = other.color;age = new int(*other.age);}cout << "Animal::拷贝赋值函数" << endl;return *this;}};
class Dog:public Animal
{
private:int *legs;
public://无参构造函数Dog(){cout << "Dog::无参构造" << endl;}//有参构造函数Dog(int legs,string name,string color,int age):Animal(name,color,age),legs(new int(legs)){cout << "Dog::有参构造函数" << endl;}//析构函数~Dog(){delete legs;cout << "Dog::析构函数" << endl;}//拷贝构造函数Dog(const Dog &other):Animal(other),legs(new int(*other.legs)){cout << "Dog::拷贝构造构造" << endl;}//拷贝赋值函数Dog &operator=(const Dog &other){if(this != &other){Animal::operator=(other);legs = new int(*other.legs);}cout << "Dog::拷贝赋值函数" << endl;return *this;}void speak(){cout << "汪汪汪" << endl;}
};
int main()
{Dog d1;//实例化d1对象 不初始化 走无参构造Dog d2(4,"xiaohuang","yellow",3);//实例化d2 并初始化Dog d3(d2);//实例化d3 并使用d2给其初始d1 = d3;  //将d3 赋值给d1d1.speak();d2.speak();d3.speak();return 0;
}

运行结果:

作业要求:

程序代码:

#include <iostream>using namespace std;//封装一个 讲解动物 类
class Animal
{
public:Animal(){}virtual void perform() = 0;
};//封装一个 狮子 类 公有继承Animal
class Lion:public Animal
{
private:string name;
public:Lion(){}Lion(string name):name(name){}//重写虚函数void perform(){cout << name << ":跳舞" << endl;}
};
//封装一个 大象 类 共有继承Animal
class Elephant:public Animal
{
private:string name;
public:Elephant() {}Elephant(string name):name(name){}//重写虚函数void perform(){cout << name << ":唱歌" << endl;}
};//封装一个 猴子 类 共有继承Animal
class Monkey:public Animal
{
private:string name;
public:Monkey(){}Monkey(string name):name(name){}//重写虚函数void perform(){cout << name << ":杂耍" << endl;}
};int main()
{//狮子类实例化一个对象 并初始化Lion l1("狮子");//使用基类指针 指向狮子子类对象l1Animal *p =&l1;p->perform();//展开狮子子类功能//大象类实例化对象Elephant e1("大象");p = &e1;p->perform();//猴子实例化对象Monkey m1("猴子");p = &m1;p->perform();return 0;
}

运行结果:

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

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

相关文章

ElementPlus布局出现“xx/index.vue“. Does the file exist?

复制页面&#xff0c;加入后出现index.vue". Does the file exist? 问题&#xff1a; [plugin:vite:import-analysis] Failed to resolve import "element-plus/es/components/head/style/css" from "src\views\MyFrontTest\Test1\index.vue". Does…

[Linux初阶]which-find-grep-wc-管道符命令

目录 一.which 二.find a.-name b.-size 三.grep 四.wc 五.管道符(|) 五.总结 一.which 语法格式: which [命令] Linux中的一个个命令,本体上就是一个个的二进制可执行程序(相当于windows中的.exe文件). 在Linux中,一切皆文件. which命令:用于查看指定命令的可执行…

【JS进阶】第3天

JavaScript 进阶 - 第3天笔记 理论较多&#xff0c;主要讲解原型对象和对象原型 了解构造函数原型对象的语法特征&#xff0c;掌握 JavaScript 中面向对象编程的实现方式&#xff0c;基于面向对象编程思想实现 DOM 操作的封装。 了解面向对象编程的一般特征掌握基于构造函数原…

饼图渲染的关键

1) 创建一个DOM对象,有自定义的高和宽. 2) 引入Echarts软件包并导入到对应文件内 npm i Echarts import 文件.js script src.../文件 3) 初始化一个对象 4) 对象的方法实现饼图渲染 data内的数据,且当一个对象已经渲染一遍,再执行这个,会对setOption的参数进行更新,其…

Adobe Illustrator和Photoshop哪个难学?另一款好用设计软件上位!

当设计开始时&#xff0c;几乎没有人不知道。 Adobe 公司的两大设计软件&#xff1a;Adobe Illustrator 和 Photoshop。虽然 Adobe Illustrator和 Photoshop 很有名&#xff0c;有一定设计经验的设计师在前期探索使用后可以对 Adobe Illustrator和 Photoshop 的使用差异有一个大…

NEC 78K系列MCU概述

一.初识 NEC MCU NEC&#xff0c;即日本电气株式会社&#xff0c; 经营半导体业务。 NEC 倡导“ ALL Flash”&#xff0c;即 MCU 内的程序存储器使用 Flash ROM。 为什么用 Flash ROM&#xff1f; 与掩膜 ROM 微控制器相比&#xff0c; Flash 微控制器加速了系…

YAML-02-yml 配置文件 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml

java 中处理 yml 的开源组件是什么&#xff1f; 在Java中处理YAML&#xff08;YAML Aint Markup Language&#xff09;格式的开源组件有很多&#xff0c;其中一些比较常用的包括&#xff1a; SnakeYAML&#xff1a; SnakeYAML 是一个Java库&#xff0c;用于解析和生成YAML格式…

富格林:重视平台挑选阻挠虚假

富格林悉知&#xff0c;在金融市场中&#xff0c;现货黄金一直被视为避险资产和投资保值的选择之一&#xff0c;吸引了众多投资者的关注。越来越多投资者也开始重视交易平台的挑选&#xff0c;毕竟虚假平台对我们的交易百害无一利。因此&#xff0c;我们要学会阻挠虚假平台选择…

理解java进程和多线程

一、进程是什么&#xff0c;线程是什么&#xff1f; (1)理解&#xff1a; 进程是一个主体任务&#xff0c;线程是这个进程下的子任务&#xff0c;下图解释&#xff1a; 描述&#xff1a;一个餐厅好比一个进程&#xff0c;一个餐厅下面有多个职位的厨师&#xff0c;他们分别是…

Java代码基础算法练习-公式求和-2024.03.24

任务描述&#xff1a; 求公式Snaaaaaa…aa…aaa&#xff08;有n个a&#xff09;之值&#xff0c;其中a是一个数字&#xff0c;为2。 例如&#xff0c;n5 时222222222222222&#xff0c;n 由键盘输入(n<5)。 任务要求&#xff1a; package march0317_0331;import java.util.…

闭包学习,闭包和高阶函数

面试官反复在前端面试中提出闭包相关的问题&#xff0c;并要求提供代码示例&#xff0c;主要是为了考察以下几点&#xff1a; 1.概念&#xff1a;考察候选人是否真正理解闭包是如何形成的&#xff0c;即当一个函数可以访问并操作其外部作用域中的变量&#xff0c;即使在其外部…

React函数组件Hook

问题: 相对于类组件, 函数组件的编码更简单, 效率也更高, 但函数组件不能有state (旧版) 解决: React 16.8版本设计了一套新的语法来让函数组件也可以有state Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性 Hook也叫钩子…

Simple negative sampling for link prediction inknowledge graphs

摘要 知识图嵌入方法学习知识图中实体和关系的低维向量表示&#xff0c;便于知识图中的链接预测任务。在学习嵌入过程中&#xff0c;采样负三元组是很重要的&#xff0c;因为KGs只观察到正三元组。据我们所知&#xff0c;均匀随机、基于生成对抗网络(GAN)和nscach、结构感知负…

Linux 系统 快速卸载docker

(卸载前一定要做好相关数据的备份) 卸载&#xff1a; 第一种卸载方法 1、查询docker安装过的包&#xff1a; yum list installed | grep docker 2、删除安装包&#xff1a; yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y 3、删除镜像/容器等 rm -rf /var/lib/dock…

【征稿进行时|见刊、检索快速稳定】2024年教育资源与人文发展国际学术会议(ICERHD 2024)

【征稿进行时|见刊、检索快速稳定】2024年教育资源与人文发展国际学术会议&#xff08;ICERHD 2024&#xff09; 2024 International Conference on Educational Resources and Humanistic Development&#xff08;ICERHD 2024&#xff09; 大会主题&#xff1a; 教育艺术 商…

机器学习周报第33周

目录 摘要Abstract一、文献阅读1.1 论文标题1.2 论文摘要1.3 论文背景1.4 过去研究1.5 论文介绍1.5.1 论文模型1.5.2 时空交互学习模块&#xff08;Spatiotemporal Interactive Learning Module&#xff09;1.5.3 动态图推理模块&#xff08;Dynamic Graph Inference Module&am…

【Java】基于SpringCloud的考研复试辅导平台

1、前端请求后端服务提供的接口。 2、后端服务的控制层Controller接收前端的请求。 3、Contorller层调用Service层进行业务处理。 4、Service层调用Dao持久层对数据持久化。 XXX-api&#xff1a;接口工程&#xff0c;为前端提供接口。 XXX-service: 业务工程&#xff0c;为…

SQLite使用的临时文件(二)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite数据库文件损坏的可能几种情况 下一篇&#xff1a;未发表 ​ 1. 引言 SQLite的显着特点之一它是一个数据库由一个磁盘文件组成。 这简化了 SQLite 的使用&#xff0c;因为移动或备份 数据库就像复制单个文…

第4周 Python程序流程控制刷题(选择结构)

单击题目&#xff0c;直接跳转到页面刷题&#xff0c;一周后公布答案。 B2050&#xff1a;三角形判断B2037&#xff1a;奇偶数判断B2039&#xff1a;整数大小比较P5711&#xff1a;闰年判断P5714&#xff1a;肥胖问题B2043&#xff1a;判断能否被 3&#xff0c;5&#xff0c;7…

shell编程-jq命令详解

文章目录 前言一、jq简介1. 简介2. 语法3. 命令选项 二、用于处理json数据1. 过滤1.1 标识运算符1.2 基本过滤1.3 获取对象属性1.3 迭代数组元素1.4 获取数组元素1.5 使用运算符 2. 类型和值2.1 数组构造2.2 对象构造2.3 递归下降 3. 内置运算符和函数3.1 算术运算符3.2 函数3.…