1.26 C++ day3

思维导图

作业:

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

代码

#include <iostream>

using namespace std;

class Per//封装一个Per类
{
private://表示私有属性
    string name;//成员:姓名
    int age;//成员:年龄
    int *height;//指针成员:身高
    double *weight;//指针成员:体重
public:
    //无参构造函数
    Per()
    {
        cout << "Per::无参构造函数" << endl;
    }
    //有参构造函数
    Per(string name,int age,int height,double weight):name(name),age(age),height(new int(height)),weight(new double(weight))
    {                                                 //初始化列表
        cout << "Per::有参构造函数" << endl;
    }
    //析构函数
    ~Per()
    {
        cout << "Per::析构函数" << endl;
        delete height;//手动释放指针成员height所申请的堆区空间
        delete weight;//手动释放指针成员weight所申请的堆区空间
    }
    //拷贝构造函数
    Per(const Per &other):name(other.name),age(other.age)//初始化列表
    {
        height=new int(*other.height);//拷贝身高
        weight=new double(*other.weight);//拷贝体重
        cout << "Per::拷贝构造函数" << endl;
    }
    //把成员都输出在终端上
    void show()
    {
        cout << "name:" << name << ",";
        cout << "age:" << age << ",";
        cout << "height:" << *height << ",";
        cout << "weight:" << *weight << endl;
    }
};
class Stu//封装一个Stu类
{
private:
    double score;//成员:成绩
    Per p1;//成员:Per类对象p1
public:
    //无参构造函数
    Stu()
    {
        cout << "Stu::无参构造函数" << endl;
    }
    //有参构造函数
    Stu(double score,string name,int age, int height,double weight):score(score),p1(name,age,height,weight)
    {
        cout << "Stu::有参构造函数" << endl;
    }
    //析构函数
    ~Stu()
    {
        cout << "Stu::析构函数" << endl;
    }
    //拷贝构造函数
    Stu(const Stu &other):score(other.score),p1(other.p1)
    {
        cout << "Stu::拷贝构造函数" << endl;
    }
    void show()
    {
        cout << "score:" << ",";
        p1.show();
    }
};

int main()
{
    Per p;//用Per实例化一个对象p
    Per p2("张三",18,180,85.5);//p2=Per("张三",18,180,85.5);
    cout << "p2:" ;//提示是p2
    p2.show();//输出p2
    Per p3=p2;//p3.Per(p2);
    cout << "p3:" ;//提示是p3
    p3.show();//输出p3
    Stu s1;//用Stu实例化一个对象s1
    Stu s2(99.99,"李四",19,186,77.7);//s2=Stu(99.99,"李四",19,186,77.7);
    cout << "s2:" ;//提示是s2
    s2.show();//输出s2
    Stu s3=s2;//s3.Stu(s2);
    cout << "s3:" ;//提示是s3
    s3.show();//输出s3
    return 0;
}

结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言指针数组的一篇补充

这段代码是我今早在想指针数组应该怎么去了解清楚的时候想到的一个代码&#xff0c;纠结了1半个多小时将代码理清楚&#xff0c;分享给大家看一下&#xff0c;对我最近发布的博文应该有一个补充帮助理解的作用。 对于这段代码的解释&#xff1a; 要正确理解指针数组是一个数组&…

java版代码生成器

之前实现的JRT代码生成器是M版的&#xff0c;那么用户必须用M库才能有代码生成器的功能。为了提供给就是不用M库的用户使用&#xff0c;JRT再提供脚本版的java代码生成器&#xff0c;方便直接连关系库生成JRT的代码。 实现&#xff1a; import JRT.Core.MultiPlatform.JRTCon…

代理IP有没有风险和安全问题?

在数字时代&#xff0c;随着互联网的日益普及&#xff0c;代理IP作为一种网络技术&#xff0c;其安全风险和潜在问题也逐渐成为人们关注的焦点。今天我们就来看看&#xff0c;代理IP到底有什么安全问题&#xff0c;我们又该如何避免这些问题呢&#xff1f; 这得从代理IP是什么来…

解读BEVFormer,新一代CV工作的基石

文章出处 BEVFormer这篇文章很有划时代的意义&#xff0c;改变了许多视觉领域工作的pipeline[2203.17270] BEVFormer: Learning Birds-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270 BEV …

fatal error:require():Failed opening required

今天部署网站遇到了个错误 fatal error:require():Failed opening required 这个错误经常遇到 大多是网站 是开启了 open_basedir 但今天这个错误很神奇 先说解决方法 1. 检测一下是不是真的 不存在这个文件 即使100%确定 也建议你再仔细看一下 这个文件存不存在 今天我遇…

高光谱图像加载、归一化和增强(jupyter book)

1.获取高光谱图像&#xff1a;我用的是indian_pines的数据集&#xff0c;感兴趣的兄弟可以自行去官方网下载&#xff0c;gt的那个是它的标签哦&#xff0c;别搞错了。 2.图像加载&#xff1a; &#xff08;1&#xff09;从本地路径加载 import scipy.io as sio# 文件路径 fil…

在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作

前言&#xff1a;什么是操作筛选器 操作筛选器是 ASP.NET Core Web API 中的一种过滤器&#xff0c;用于在执行控制器操作&#xff08;Action&#xff09;之前或之后执行一些代码&#xff0c;完成特定的功能&#xff0c;比如执行日志记录、身份验证、授权、异常处理等通用的处…

css设置不可点击

文章目录 一、前言二、MDN三、使用四、注意五、总结六、最后 一、前言 在网页开发中&#xff0c;经常会遇到一种情况&#xff0c;就是需要将某个元素的点击事件屏蔽&#xff0c;使其在用户点击时没有任何反应。这时候&#xff0c;我们可以通过CSS的pointer-events属性设置为no…

详解SpringCloud微服务技术栈:ElasticSearch搜索结果处理(排序、分页、高亮)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;DSL查询ES文档高级语法、相关性算分数学原理总结 &#x1f4da;订阅专栏&#xff1a;微…

【华为 ICT HCIA eNSP 习题汇总】——题目集9

1、缺省情况下&#xff0c;广播网络上 OSPF 协议 Hello 报文发送的周期和无效周期分别为&#xff08;&#xff09;。 A、10s&#xff0c;40s B、40s&#xff0c;10s C、30s&#xff0c;20s D、20s&#xff0c;30s 考点&#xff1a;①路由技术原理 ②OSPF 解析&#xff1a;&…

Android源码设计模式解析与实战第2版笔记(一)

第一章 走向灵活软件之路 — 面向对象的六大原则 优化代码的第一步 — 单一职责原则 单一职责原则的英文名称是Single Responsibility Principle&#xff0c;缩写是SRP。 SRP&#xff1a;就一个类而言&#xff0c;应该仅有一个引起它变化的原因。 一个类中应该是一组相关性很…

Elasticsearch:使用 Gemini、Langchain 和 Elasticsearch 进行问答

本教程演示如何使用 Gemini API创建 embeddings 并将其存储在 Elasticsearch 中。 我们将学习如何将 Gemini 连接到 Elasticsearch 中存储的私有数据&#xff0c;并使用 Langchian 构建问答功能。 准备 Elasticsearch 及 Kibana 如果你还没有安装好自己的 Elasticsearch 及 Ki…

小游戏选型(二):第三方社交小游戏厂家对比,即构/声网/融云/云信等

前言&#xff1a; 上一篇文章我们主要介绍社交游戏化趋势&#xff0c;并分析了直播平台面临的买量贵、变现难等问题&#xff0c;探讨了小游戏作为新的运营变现玩法的优势。同时还列举了各大直播平台TOP5的小游戏。今天我们继续介绍小游戏系列内容&#xff0c;本文是该系列的第…

力扣算法-Day20

541. 反转字符串II 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0c…

确定软件项目范围基准 5个重点

软件项目范围基准明确了项目的边界、目标和主要交付成果&#xff0c;有助于提高项目成本、进度和资源估算的准确性&#xff0c;便于实施项目控制&#xff0c;而且还可以帮助我们清楚分派责任&#xff0c;防止范围蔓延&#xff0c;从而提升项目的成功率。 如果没有明确确定范围基…

Java复习系列之阶段二:数据库

1. 基础语法 1.1 DQL&#xff08;数据查询语句&#xff09; 执行顺序&#xff1a; from、join 、on、where、group by、having、select、distinct、order by、limit 1.2 DML&#xff08;数据修改语言&#xff09; 对数据表的增删改 insert into update set delete form 1.…

数模.聚类模型

一、前言 二、K-means聚类算法 下面是针对量纲不同进行的操作 三、系统聚类 spass操作 spass操作 总结&#xff1a;最好使用系统聚类算法&#xff0c;在论文上写的的内容更加充实&#xff0c;图片也较多 四、DBSCAN算法 适用于这种比较有规律的。 这种算法使用很少。不建议使用…

喝酒筛子小游戏集合源码微信小程序喝酒骰子程序带流量主版本源码酒桌玩筛子源码

2023新版酒桌小游戏喝酒小程序源码-&#xff08;流量主版本&#xff09; 修改增加了广告位 根据文档直接替换&#xff0c;原版本没有广告位 直接上传源码到开发者端即可 通过后改广告代码&#xff0c;然后关闭广告展示提交&#xff0c;通过后打开即可 无广告引流 流量主版…

签到业务流程

1.技术选型 Redis主写入查询&#xff0c;Mysql辅助查询&#xff0c;传统签到多数都是直接采用mysql为存储DB,在大数据的情况下数据库的压力较大.查询速率也会随着数据量增大而增加.所以在需求定稿以后查阅了很多签到实现方式,发现用redis做签到会有很大的优势.本功能主要用到r…

git:使用git rebase合并多次commit为一个

git log&#xff1a;找到需要合并的最早 commit 的父级 git rebase -i 73a5cd8597除第一个 pick 外&#xff0c;将其它改成 s&#xff0c;改完后保存退出 保存完后弹出 commit message 合并提示&#xff0c;根据这次合并的目的&#xff0c;重写commit message&#xff0c;改完后…