10.30 作业 C++

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

cpp 复制代码
#include <iostream>

using namespace std;

class Per
{
private:
    string name;
    int age;
    int *height;
    int *weight;
public:
    Per(){cout << "Per::无参构造函数" << endl;}

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

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

    ~Per()
    {
        delete height;
        delete weight;
        cout << "Per::析构函数" << endl;
    }

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

};

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

    Stu(double score, string name, int age, int height, int 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()
    {
        cout << "分数: " << score << endl;
        p1.show();
    }
};
int main()
{
    Stu s1(99, "大帅比", 20, 185, 145);
    s1.show();
    Stu s2(s1);
    s2.show();

    Per p3("帅比", 20, 188, 160);
    p3.show();
    Per p4(p3);
    p4.show();

    return 0;
}
相关推荐
你怎么知道我是队长2 小时前
C语言---头文件
c语言·开发语言
期待のcode3 小时前
Java虚拟机的运行模式
java·开发语言·jvm
hqwest3 小时前
码上通QT实战25--报警页面01-报警布局设计
开发语言·qt·qwidget·ui设计·qt布局控件
a程序小傲3 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
HellowAmy3 小时前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
自学不成才3 小时前
深度复盘:一次flutter应用基于内存取证的黑盒加密破解实录并完善算法推理助手
c++·python·算法·数据挖掘
徐先生 @_@|||4 小时前
Palantir Foundry 五层架构模型详解
开发语言·python·深度学习·算法·机器学习·架构
tang777894 小时前
爬虫如何绕过绕过“5秒盾”Cloudflare:从浏览器指纹模拟到Rust求解之不完全指南
开发语言·爬虫·rust·cloudflare
Yuer20254 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
hqwest5 小时前
码上通QT实战26--系统设置01-系统设置布局
开发语言·qt·qss·qt基础控件·qt布局控件·qt表格控件