C++作业3

news2025/1/11 6:08:20

设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函数、析构函数和拷贝构造函数。

代码:

#include <iostream>

using namespace std;

class Per
{
private:
    string name;
    int age;
    double *height;
    double *weight;
public:
    Per()
    {
        cout << "per无参" << endl;
    }

    Per(string name,int age,double height,double weight):name(name),age(age),height(new double(height)),weight(new double(weight))
    {
        cout << "per有参" << endl;
    }

    Per(const Per &other):name(other.name),age(other.age),height(new double(*(other.height))),weight(new double(*(other.weight)))
    {
        cout << "per拷贝" << endl;
    }

    ~Per()
    {
        delete height;
        delete height;
        height = nullptr;
        weight = nullptr;
        cout << "per析构" << endl;
    }

    void show();

};

void Per::show()
{
    cout << "name:" << name << endl;
    cout << "age:" << age << endl;
    cout << "height:" << *height << endl;
    cout << "weight:" << *weight << endl;
}

class Stu
{
private:
    double score;
    Per p1;
public:
    Stu()
    {
       cout << "stu无参" << endl;
    }

    Stu(double score,string name,int age,double height,double weight):score(score),p1(name,age,height,weight)
    {
        cout << "stu有参" << endl;
    }

    Stu(const Stu &other):score(other.score),p1(other.p1)
    {
        cout << "stu拷贝" << endl;
    }

    ~Stu()
    {
        cout << "stu析构" << endl;
    }

    void show();
};

void Stu::show()
{
    cout << "score:" << score << endl;
    p1.show();
}

int main()
{
    Per s1("张三",18,1.7,120);
    s1.show();
    cout << "-----------------------" << endl;
    Per s2(s1);
    s2.show();
    cout << "-----------------------" << endl;
    Stu s3(98,"李四",21,1.8,125);
    s3.show();
    cout << "-----------------------" << endl;
    Stu s4(s3);
    s4.show();
    return 0;
}

运行结果:

思维导图:

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

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

相关文章

Git常用命令#切换分支

要在 Git 中切换分支&#xff0c;你可以使用 git checkout 命令。 a.创建新分支并切换到该分支 如果你想要创建一个新分支并立即切换到该分支&#xff0c;可以使用以下命令&#xff1a; git checkout -b 新分支名这会创建一个名为 新分支名 的新分支&#xff0c;并将你的工作目…

通过PS导出样条线到3DMax挤出模型

1、PS制作样条线 PS用钢笔做出路径&#xff0c;导出 把.ai文件拖入3dmax中 2、挤出模型 调整模型在中心点位置&#xff0c;导出

【算法每日一练]-图论(保姆级教程 篇6(图上dp))#最大食物链 #游走

目录 题目&#xff1a;最大食物链 解法一&#xff1a; 解法二&#xff1a; 记忆化 题目&#xff1a;游走 思路&#xff1a; 题目&#xff1a;最大食物链 解法一&#xff1a; 我们标记f[i]是被f[x]捕食的点对应的类食物链数 不难得出&#xff1a; f[x]∑(f[i]) 首先从生…

ECU Bootloader程序开发

文章目录 前言前言 本篇主要介绍ECU BootLoader的“一般”开发逻辑,对正在、或想要做这方面工作的小伙伴一个参考。 BootLoader的稳定性至关重要,前期设计要规避可能存在的所有使ECU变“砖”的风险点,尽可能地设计多重防范机制,并做充分的正常、异常测试,才能保证量产的质…

由于找不到xapofx1_5.dll,无法继续执行代码的修复方法

在使用特定应用程序或游戏时&#xff0c;Windows 用户可能会遇到一个错误消息“由于找不到xapofx1_5.dll,无法继续执行代码”&#xff0c;这可能导致程序无法启动。本文将介绍解决此问题的多种方法&#xff0c;并对比各自的优点和缺点。 一.什么是xapofx1_5.dll xapofx1_5.dll…

WhatsApp群发消息脚本功能介绍及代码分享!

随着社交媒体的普及&#xff0c;通讯应用成为了人们日常沟通的主要工具之一&#xff0c;其中&#xff0c;WhatsApp凭借其简洁、易用的特点&#xff0c;成为了全球广受欢迎的通讯应用之一&#xff0c;除了基础的聊天功能&#xff0c;WhatsApp还提供了一系列辅助工具功能&#xf…

二十年前就在用的DDOS攻击,为什么一直不过时?

文章目录 一、DOS二、DDOS三、如何防范DDOS1.可以过滤IP地址2.增加设备3.在骨干节点配置防火墙4.开启过滤5.配置DNS抗攻击6.白帽团队 四、白帽子 为什么二十年前中国红客们就在用的DDOS攻击直到现在还依然是黑客们最爱的攻击方法&#xff1f;二十年前的攻击技术为什么还不过时&…

JavaScript类型判断:解密变量真实身份的神奇技巧

文章目录 1. typeof运算符2. instanceof运算符3. Object.prototype.toString4. Array.isArray5. 使用constructor属性6. 使用Symbol.toStringTag7. 使用is类型判断库8. 谨慎使用隐式类型转换结语 &#x1f389;JavaScript类型判断&#xff1a;解密变量真实身份的神奇技巧 ☆* o…

文献速递:(第三部分)— (超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展)

文献速递&#xff1a;&#xff08;第三部分&#xff09;— &#xff08;超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展&#xff09; Title 题目 A review of synthetic and augmented training data for machine learning in ultrasonic non-destructive e…

手持收银机|移动收银机|POS终端安卓主板定制方案

智能手持收银机是一种集成了显示触摸控制、IC卡刷卡、磁条卡刷卡、二维码扫码、票据打印等多种功能的设备。它支持支付宝、微信、银行卡、云闪付、Apple Pay、会员储值等多种支付方式&#xff0c;为商家和用户提供了更便捷的支付体验。 该手持收银机采用了联发科MTK6761平台开发…

已知数组A[1..n]中元素类型为非负整数,设计算法将其调整为左右两部分,左边所有为奇数,右边所有为偶数,并要求算法的时间复杂度为O(n)

//左边奇数右边偶数 void Swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void LeftRight(int arr[],int n) {int i 0;int j n - 1;while(i<j){if (arr[i] % 2 0 && arr[j] % 2 1) {Swap(&arr[i], &arr[j]);i;j--;}else if (arr[i] % 2 1 &…

小众实用的Python 爬虫库RoboBrowser推荐

文章目录 前言安装及用法实战一下1 打开目标网站2 自动化表单提交3 数据爬取 最后关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六…

JSP格式化标签 formatDate日期格式转换

我们继续来讲格式化标签 formatDate 这个标签 作用是 将一个date时间类型的值转成指定格式的字符串 语法格式如下 value 是需要格式化的数据 type 是确定你要转什么类型的数据 这里有 日期型 时间型 日期时间型 dateStyle 专门用来设置日期格式 timestyle 的话 是专门用来设…

STM32 自定义UART数据格式(串口通信点亮LED实验)

起始位&#xff1a;0xaa告诉机器我们要开始传输数据了。 校验位&#xff1a;等于前几项数据位的相加。 结束位&#xff1a;结束传输。 自定义UART数据格式&#xff1a; 1》CPU与CPU之间 2》外设与CPU之间 这里举例&#xff0c;利用串口调试助手发送一串数据&#xff0c;…

Qt实现右键菜单

一、实现方法 QWidget提供了虚函数: virtual void contextMenuEvent(QContextMenuEvent*event);覆写该函数&#xff0c;即可。 二、Example 创建一个基本的mainwindow项目&#xff0c; 头文件&#xff1a; class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWin…

在AI时代我们的必修课,从提示词工程到大语言模型,进行多场景实战的经验分享总结

在AI时代&#xff0c;我们正面临着与人工智能技术日益紧密相连的需求和挑战。无论是从事计算机科学、数据科学还是其他相关领域的人员&#xff0c;都需要掌握AI技术&#xff0c;并将其应用到不同的场景中。本文将分享一些经验总结&#xff0c;帮助读者在多种场景下进行AI实战。…

linux NAT网卡配置static

由于是内网&#xff0c;资料无法拷贝&#xff0c;借助参考资料&#xff0c;整理发出。 镜像安装 基本操作。 查看VM配置 图1&#xff0c;有几个信息。一个是NAT借用了网卡里的VMnet8适配器。 子网IP是从192.168.142.0 子网掩码255.255.255.255&#xff0c;对应下面配置的N…

后端项目操作数据库增删改查-使用MyBatis配置实现数据操作

一、创建一个数据表对应的实体类 在src/main/java/包名/路径下新建pojo.entity文件夹&#xff0c;如com.luoyang.small.pojo.entity&#xff0c;并在该文件夹下新增实体类java文件&#xff1a;如相册Album.java 该实体类的属性应与数据表的字段对应 数据表样例如下&#xff1a…

Quest 3圆满结束,500万SUI正在送出!

的最后审核阶段于北京时间今日凌晨结束并公布了获奖情况&#xff0c;此次总奖池金额达到了500万SUI&#xff0c;共有16.4万参与者获得了奖励。参与Quest 3的人们可以在Sui网络上的九款游戏中进行选择&#xff0c;并利用促销活动注册SuiNS域名。 Quest 3以游戏为重点&#xff0…

spring boot 2 升级到 spring boot 3 后文件上传失败

背景 项目需要&#xff0c;要求升级 spring boot 2.7 到 spring boot 3.2&#xff0c;升级过程中发现很多不兼容问题&#xff0c;下面说明文件上传失败的解决方案。 问题 spring boot 2 中不需要额外的配置&#xff0c;直接在 Controller 中配置 MultipartFile 接收页面传的…