C++QT-day3

news2024/9/23 3:27:45
#include <iostream>
/*设计一个Per类,类中包含私有成员:姓名、年龄、
 * 指针成员身高、体重,再设计一个Stu类,
 * 类中包含私有成员:成绩、Per类对象p1,
 * 设计这两个类的构造函数、析构函数和拷贝构造函数。*/
using namespace std;

class Per
{
private:
    string name; //姓名
    int age; //年龄
    double *height; //身高
    double *weight; //体重
public:
    Per():height(new double(1)),weight(new double(1))
    {
        cout << "无参构造函数" << endl;
    }

    Per(string name, int age, double h, double w):name(name),age(age),height(new double(h)),weight(new double(w))
    {
        cout << "有参构造函数" << endl;
    }

    ~Per() //定义析构函数
    {
        delete height; //释放指针空间
        delete weight;
        height = nullptr;
        weight = nullptr;
        cout << "Per::析构函数:" << this << endl;
    }

    //Per(const Per &other):name(other.name),age(other.age),height(other.height),weight(other.weight)//浅拷贝构造函数
    Per(const Per &other):name(other.name),age(other.age),height(new double(*(other.height))),weight(new double(*(other.weight)))//深拷贝构造函数
    {
        cout << "拷贝构造函数" << endl;
    }

    void show()
    {
        cout << "姓名:" << name << endl;
        cout << "年龄:" << age << endl;
        cout << "身高:" << *height << endl;
        cout << "体重:" << *weight << endl;
    }
};

class Stu
{
private:
    int score; //成绩
    Per p1;
public:
    Stu()
    {
        cout << "无参构造函数" << endl;
    }

    Stu(int score, Per &p1):score(score),p1(p1)
    {
        cout << "有参构造函数" << endl;
    }

    ~Stu()
    {
        cout << "Stu::析构函数:" << this<< endl;
    }

    Stu(const Stu &other):score(other.score),p1(other.p1)//拷贝构造函数
    {
        cout << "拷贝构造函数" << endl;
    }

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

int main()
{
    Per p1("张三", 18, 180, 150);
    Per p2 = p1; //调用拷贝构造函数
    //p2.show();
    Stu s1; //无参构造函数
    Stu s2(98, p1); //有参构造函数
    Stu s3(s2); //拷贝构造函数
    cout << endl;
    s3.show();
    cout << endl;
    return 0;
}

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

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

相关文章

机器学习1:k 近邻算法

k近邻算法&#xff08;k-Nearest Neighbors, k-NN&#xff09;是一种常用的分类和回归算法。它基于一个简单的假设&#xff1a;如果一个样本的k个最近邻居中大多数属于某一类别&#xff0c;那么该样本也很可能属于这个类别。 k近邻算法的步骤如下&#xff1a; 输入&#xff1a…

设计模式 - 行为型模式考点篇:模板方法模式(概念 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、模板方法模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式&#xff1a;类或对象间如何交互、如何划分职责&#xff0c;从而更好的完成任务. 1.1、模板方法模式 1.1.1、概念 …

COCI 2021-2022 #1 - Volontiranje 题解

题目大意 让你求最多有多少个不相交的最长上升子序列。 思路 我们可以将数 a i a_i ai​ 看成一个点 ( i , a [ i ] ) (i,a[i]) (i,a[i])&#xff0c;于是我们可以按照 x x x 递增 y y y 递减考虑分层。 分层的方法就是从 1 1 1 到当前点的 LIS 即为其所在层数。 此时…

Spring源码解析——IOC之bean 的初始化

正文 一个 bean 经历了 createBeanInstance() 被创建出来&#xff0c;然后又经过一番属性注入&#xff0c;依赖处理&#xff0c;历经千辛万苦&#xff0c;千锤百炼&#xff0c;终于有点儿 bean 实例的样子&#xff0c;能堪大任了&#xff0c;只需要经历最后一步就破茧成蝶了。…

Git 学习笔记 | Git 分支

Git 学习笔记 | Git 分支 Git 学习笔记 | Git 分支分支的概念为什么要使用分支&#xff1f;常用指令 Git 学习笔记 | Git 分支 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来&#xff0c;避免影响开发主线。…

小白网络安全学习手册(黑客技术)

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

[idekCTF 2022]Paywall - LFI+伪协议+filter_chain

[idekCTF 2022]Paywall 一、解题流程&#xff08;一&#xff09;、分析&#xff08;二&#xff09;、解题 二、思考总结 一、解题流程 &#xff08;一&#xff09;、分析 点击source可以看到源码&#xff0c;其中关键部分&#xff1a;if (isset($_GET[p])) {$article_content…

【C语言】进阶——动态内存管理

一、为什么存在动态内存管理 我们已经掌握的内存开辟方式有&#xff1a; int val 20; //在栈空间开辟四个字节char arr[10] {0}; //在栈空间开辟10个字节的连续空间 但上述开辟空间的方式有两个特点&#xff1a; 空间开辟大小是固定的数组在声明的时候&#xf…

Maven最新版本安装及配置

Maven是一个Java项目管理和构建工具&#xff0c;它可以定义项目结构、项目依赖&#xff0c;并使用统一的方式进行自动化构建&#xff0c;是Java项目不可缺少的工具。 本章我们详细介绍如何使用Maven。 一、Maven是什么&#xff1f; 如果每一个项目都自己搞一套配置&#xf…

【java学习】一维数组(9)

文章目录 1. 一维数组声明2. 一维数组初始化3. 数组元素的引用4. 数组元素的默认初始化 1. 一维数组声明 声明方式&#xff1a; type var[] 或 type[] var 例如&#xff1a; int a[]; int[] a1; double b[]; Mydate[] c; //对象数组2. 一维数组初始化 动态初始化&#xf…

python练习4

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

2023年十大顶尖远程控制软件

随着科技的不断进步和时代的发展&#xff0c;远程控制软件已经成为现代工作、教育等领域中必不可少的工具。这些软件可以实现远程桌面连接、远程支持和远程维护等功能&#xff0c;大大提高了工作效率&#xff0c;同时也让用户拥有更加灵活的操作方式。当然&#xff0c;不同的远…

C#:出题并判断

C#:出题并判断 //出题并判断 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace Test_…

【高阶数据结构】图详解第二篇:图的遍历(广度优先+深度优先)

文章目录 图的遍历1. 图的广度优先遍历&#xff08;一石激起千层浪&#xff09;思路分析代码实现测试美团2020校招笔试题&#xff1a;六度人脉 2. 图的深度优先遍历&#xff08;一条道走到黑&#xff09;思路分析代码实现测试 3. 对于非连通图情况的处理4.源码BFSDFS 图的遍历 …

uboot启动流程-run_main_loop 到 cmd_process处理说明一

一. uboot启动 uboot命令模式&#xff1a;uboot 启动以后会进入 3 秒倒计时&#xff0c;如果在 3 秒倒计时结束之前按下按下回车键&#xff0c;那么就会进入 uboot 的命令模式。 如果在 uboot 倒计时结束以后都没有按下回车键&#xff0c;就会自动启动 Linux 内 核 …

C++结构体(struct)、结构体和函数、结构体指针

前言 在本文中&#xff0c;您将学习C 编程中的结构。它是什么&#xff0c;如何定义它并在程序中使用它。结构是一个单一名称下不同数据类型的变量的集合。它与类相似&#xff0c;两者都保存着不同数据类型的数据集合。 问题 例如&#xff1a;您要存储有关某个人的一些…

《向量数据库指南》——向量数据库 大模型的“海马体”

在大模型的高调火热之下,向量数据库也获得了前所未有的关注。 近两个月内,向量数据库迎来融资潮,Qdrant、Chroma、Weaviate先后获得融资,Pinecone宣布1亿美元B轮融资,估值达到7.5亿美元。 东北证券预测,到2030年,全球向量数据库市场规模有望达到500亿美元,国内向量数…

【LeetCode热题100】--155.最小栈

155.最小栈 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元…

dubbo协议与triple协议的对比

分别使用dubbo协议和triple协议&#xff0c;按照官方文档搭建Demo。 两个流程对比下来发现&#xff0c;dubbo协议搭建起来比较简单直接&#xff0c;定义好接口&#xff0c;实现类&#xff0c;然后启动provider和consumer就完事了。而triple协议则需要先定义proto文件 然后增加…

(StackOverflow问答)使用Huggingface Transformers从磁盘加载预训练模型

这是在Stack Overflow上的一个问答&#xff0c;链接如下&#xff1a; Load a pre-trained model from disk with Huggingface Transformers - Stack Overflowhttps://stackoverflow.com/questions/64001128/load-a-pre-trained-model-from-disk-with-huggingface-transformers…