当前位置: 首页 > article >正文

C++拷贝构造函数

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

#include <iostream>

using namespace std;
class Per
{
private:
    string name;
    int age;
    double* tall;
    double* weight;
public:
    Per()
    {
        cout << "Per::无参构造函数"  << endl;
    }
    Per(string name,int age,double tall,double weight):name(name),age(age),tall(new double(tall)),weight(new double(weight))
    {
        cout << "Per::有参构造函数" << endl;
    }
    ~Per()
    {
        cout << "Par::析构函数" << endl;
    }
    Per(const Per &other):name(other.name),age(other.age),tall(new double(*(other.tall))),weight(new double (*(other.weight)))
    {
        cout << "Per::拷贝构造函数" << endl;
    }

};
class Stu
{
private:
    int score;
    Per p1;
public:
    Stu()
    {
        cout << "Stu::无参构造函数" << endl;
    }
    Stu(int score,string name,int age,double tall,double weight):score(score),p1(name,age,tall,weight)
    {
        cout << "Stu::有参构建函数" << endl;
    }
    ~Stu()
    {
        cout << "Stu::析构函数" << endl;
    }
    Stu(const Stu &other):score(other.score),p1(other.p1)
    {
        cout << "Stu::拷贝构建函数" << endl;
    }

};

int main()
{
    Per p1;
    Per p2("张三",20,65,180);
    Per p3(p2);

    Stu s1;
    Stu s2(100,"张三",20,65,180);
    Stu s3(s2);
    return 0;
}


http://www.kler.cn/news/285219.html

相关文章:

  • 智能儿童对讲机语音交互,乐鑫ESP-RTC音视频通信,ESP32无线语音方案
  • JAVA:文字写入图片、图片插入图片
  • 睿考网:2024年中级经济师考试备考技巧
  • Java设计模式【享元模式】-结构型
  • mac在终端中使用vscode打开文件或者文件夹
  • PowerShell脚本编写:自动化Windows开发工作流程
  • audiocraft - 免费文本转音乐、AI音乐生成、AI音乐创作工具,Facebook开源,本地一键整合包下载
  • Redisson 实现分布式锁
  • 类和对象(4)
  • zabbix对接Grafana
  • Linux的远程登录教程(超详细)
  • 排序算法之桶排序详细解读(附带Java代码解读)
  • 模型 错位竞争(战略规划)
  • 从Vuex 到 Pinia,Vue 状态管理的进化
  • HTB-sequal(mysql)
  • 十一. 常用类
  • 如何开发针对不平衡分类的成本敏感神经网络 python
  • 遇到“Interpreter parsed an intent ‘xxx‘ which is not defined in the domain“报错
  • 贵州大数据实验室建设案例分享
  • vue调用booststrap弹窗
  • 大数据-112 Flink DataStreamAPI 程序输入源 DataSource 基于文件、集合、Kafka连接器
  • Linux随记(十一)
  • android 14及android15 READ_EXTERNAL_STORAGE跟相册,视频权限的适配
  • GraphRAG 文本分割优化
  • 深度学习100问31:如何降低语言模型的困惑度
  • yolov8旋转目标检测部署教程(附代码c++_python)
  • 在Java中,获取输入内容可以通过多种方式实现,以下是三种常用的方式:Scanner、BufferedReader 和 Console 的具体代码示例
  • chromedriver下载地址
  • c# net8调用vc写的dll
  • 机械学习—零基础学习日志(如何理解概率论10)