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

2023/12/30 c++ work

  1. 定义一个Person类,私有成员int age,string &name,定义一个Stu类,包含私有成员double *score,写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数,完成对Person的运算符重载(算术运算符、条件运算符、逻辑运算符、自增自减运算符、插入/提取运算符)

#include <iostream>using namespace std;// 2.定义一个Person类,私有成员int age,string &name,定义一个Stu类,包含私有成员double *score,
// 写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数,完成对Person的运算符重载(算术运算符、
// 条件运算符、逻辑运算符、自增自减运算符、插入/提取运算符)class Person{int age;string &name;
public:Person(string &name):age(0),name(name){}Person(int age,string &name):age(age),name(name){}//拷贝构造函数Person(const Person &other):age(other.age),name(other.name){cout << "person 拷贝构造函数" << endl;}//拷贝赋值函数Person &operator=(const Person &other){this->age = other.age;this->name = other.name;cout << "person 拷贝赋值函数" << endl;return *this;}//算术运算符friend Person operator+(Person &c1,Person &c2);//条件运算符friend bool operator==(Person &c1,Person &c2);//逻辑运算符friend bool operator&&(Person &c1,Person &c2);//自增自减运算符(后自加)Person operator++(int);//插入/提取运算符friend ostream &operator<<(ostream &out,Person &c1);void show();
};void Person::show(){cout << "person age = " << age << endl;cout << "person name = " << name << endl;
}ostream &operator<<(ostream &out,Person &c1){out << "age = " << c1.age << " name = " << c1.name;return out;
}Person Person::operator++(int){string str ="";Person temp(str);temp.age = this->age++;return temp;
}Person operator+(Person &c1,Person &c2){string str ="";Person temp(str);temp.age = c1.age + c2.age;return temp;
}bool operator==(Person &c1,Person &c2){return c1.age == c2.age;
}class Stu{double *score;
public://构造函数Stu(double score):score(new double(score)){}//析构函数~Stu(){delete score;}//拷贝构造函数Stu(const Stu &other):score(other.score){cout << "stu 拷贝构造函数" << endl;}//拷贝赋值函数Stu &operator=(const Stu &other){*(this->score) = *(other.score);cout << "stu 拷贝构造函数" << endl;return *this;}
};int main()
{string name ="张三";Person per(20,name);//调用构造函数Person per2 = per;per2.show();cout <<"-----------------------------------------------------" << endl;string name1 ="ww";Person per3(name1);//调用构造函数per3 = per2;per3.show();cout <<"-----------------------------------------------------" << endl;Person per4 = per2+per3;per4.show();bool res = per2 == per3;cout << "per2 == per3 结果 = " << res << endl;cout <<"-----------------------------------------------------" << endl;cout << per << endl;return 0;
}

2. 思维导图

http://www.lryc.cn/news/272443.html

相关文章:

  • ctfshow——文件上传
  • 【RocketMQ每日一问】RocketMQ SQL92过滤用法以及原理?
  • Go语言中的包管理工具之Go Path的使用
  • cocos creator(2.4.7版本) webview 可以在上层添加UI控件
  • 2023 年四川省职业院校技能大赛“信息安全管理与评估”样题
  • ubuntu2204,mysql8.x安装
  • CG Magic分享云渲染和本地渲染之间的区别有什么?
  • 【算法与数据结构】763、LeetCode划分字母区间
  • 新火种AI|人形机器人敲响上市罗,首日市值高达390亿港元
  • SpringMVC框架
  • FreeRTOS——计数型信号量知识总结及实战
  • Linux下Docker Engine安装后的一些配置步骤
  • 【并发设计模式】聊聊Balking是如何实现以及具体原理
  • dubbo的一些问题思考
  • 盛最多水的容器(力扣11题)
  • .babky勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • 20240103-通过布局让自己的生活有有意义人生有价值
  • JDK17 - 开发者视角,从 JDK8 ~ JDK17 都增加了哪些新特性
  • 八股文打卡day11——计算机网络(11)
  • 在Android设备上设置和使用隧道代理HTTP
  • Paddle3D 2 雷达点云CenterPoint模型训练
  • RabbitMQ集群的简单说明
  • 支付宝沙箱支付-验签出错之编码集异常
  • 图像分割-漫水填充法 floodFill (C#)
  • 在pycharm中jupyter连接上了以后显示无此库,但是确实已经安装好了某个库,使用python可以跑,但是使用ipython就跑不了
  • C++多态性——(3)动态联编的实现——虚函数
  • docker部署mysql
  • python代码大全(持续更新)
  • C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 处理程序异常相关技术
  • [python]项目怎么使用第三方库