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

【C++】——运算符重载

 🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯第一题:

🎯 第二题:

🎯 第三题:

🎯 答案:

💻第一题:

💻第二题:

💻第三题:

🎯第一题:

设计一个复数类Complex,包含成员变量实部real和虚部imag;运算符重载+/-实现两个复数加、减的功能。在主函数里创建两个复数对象,分别求两个复数的和与差,在主函数里显示运算结果。效果如图:

🎯 第二题:

现有一学生类定义:

   class Student{

         ……..

      private:

int _id;

         string _name;

         char *_addr;

    };

实现学生类的赋值运算符=重载,主函数调用赋值运算符并输出对象信息。

🎯 第三题:

编写一个程序,声明一个2行2列矩阵类Matrix,重载运算符“+”,使之能用于矩阵的加法运算。重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入与输出。从键盘输入两个矩阵a和b,求两个矩阵之和并输出。效果如图:

 

🎯 答案:

💻第一题:

#include <iostream>using namespace std;class Complex {private:double real;double imag;public:Complex(double x=0,double y=0):real(x),imag(y) {}void show() const; //输出数据friend Complex operator+(const Complex& a1, const Complex& a2) ; //重载为类的友元函数friend Complex operator-(const Complex& a1, const Complex& a2);//重载为类的友元函数};/******************************************************************/void Complex::show() const {if(imag>=0)cout<<real<<"+"<<imag<<"i"<<endl;elsecout<<real<<imag<<"i"<<endl;}Complex operator+(const Complex& a1,const Complex& a2) {return Complex(a1.real+a2.real,a1.imag+a2.imag);}Complex operator-(const Complex& a1,const Complex& a2) {return Complex(a1.real-a2.real,a1.imag-a2.imag);}/******************************************************************/int main() {Complex c1(5.1,3.4);Complex c2(3.6,5.3);Complex c;cout<<"c1:";c1.show();cout<<"c2:";c2.show();c=c1+c2;cout<< "c1+c2:";c.show();c=c1-c2;cout<<"c1-c2:";c.show();return 0;}

💻第二题:

#include <iostream>#include <cstring>using namespace std;class Student {private:int _id;string _name;char *_addr;public:Student(int id,string name,const char *addr);Student();Student& operator=(Student& stu);void show();};Student::Student() {}Student::Student(int id,string name,const char *addr) {/******************************************/ _id=id;_name=name;this->_addr=new char[strlen(addr)+1];if(_addr)     strcpy(_addr,addr);/******************************************/ }Student& Student::operator=(Student& stu) {//注意深拷贝/******************************************/ _id=stu._id;_name=stu._name;_addr=new char[strlen(stu._addr)+1];if(_addr)     strcpy(_addr,stu._addr);return *this;/******************************************/ }void Student::show() {cout<<"学号:"<<_id<<endl;cout<<"姓名:"<<_name<<endl;cout<<"住址:"<<_addr<<endl;}int main() {Student stu2,stu1(10001,"zhangsan","luoyang");stu1.show();stu2=stu1;stu2.show();return 0;}

💻第三题:

#include <iostream>#include <iomanip>using namespace std;class Matrix {private:int a[2][2];friend istream& operator>>(istream& is,Matrix& _m);friend ostream& operator<<(ostream& os,Matrix& _m);friend Matrix  operator+(const Matrix& mat1,const Matrix& mat2);};ostream& operator<<(ostream& os,Matrix& _m) {//每个数4列 setw(4)for(int i=0; i<2; i++) {for(int j=0; j<2; j++)os<<setw(4)<<_m.a[i][j];os<<endl;}return os;}/****************************************************/istream& operator>>(istream& is,Matrix& _m) {for(int i=0; i<2; i++)for(int j=0; j<2; j++)is>>_m.a[i][j];return is;}Matrix  operator+(const Matrix& mat1,const Matrix& mat2) {Matrix mat;for(int i=0; i<2; i++)for(int j=0; j<2; j++) {mat.a[i][j]=mat1.a[i][j]+mat2.a[i][j];}return mat;}/****************************************************/int main() {Matrix m1,m2,m;cout<<"input matrix m1:"<<endl;cin>>m1;cout<<"input matrix m2:"<<endl;cin>>m2;m=m1+m2;cout<<"output matrix m:"<<endl;cout<<m;return 0;}

相关文章:

【C++】——运算符重载

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…...

怎么理解独立机器和虚拟机

独立服务器&#xff1a;顾名思义&#xff0c;就是一个放在机房的实实在在的物理服务器&#xff0c;一个单独的主机&#xff08;具有性能高&#xff0c;处理速度快等优点&#xff0c;但 也有价格高&#xff0c;可扩展性不强等缺点&#xff09; vps&#xff1a;虚拟专用服务器,一…...

以太网和局域网

计算机网络的定义 计算机网络是一个将分散的、具有独立功能的计算机&#xff0c;通过通信设备与线路连接起来&#xff0c;由根据协议编写的软件来实现的资源共享和信息传递的系统 计算机网络的分类 广域网是互联网的核心部分 局域网 常见的局域网拓扑结构有4大类&#xff1a…...

【Git】第三篇:基本操作(配置本地仓库)

初次使用git需要设置你的用户名以及邮箱&#xff0c;这将作为当前机器git的标识&#xff0c;如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录&#xff0c;git默认使用配置邮箱以及用户名登入&#xff0c;但会要求你手动输入密码。 配置本地仓库&#xff1a;git con…...

JS中sort排序

在我们JS排序中&#xff0c;有许多排序的方法&#xff0c;比如冒泡排序、选择排序等等。这次我为大家介绍一下sort排序&#xff01; sort 按照 Unicode code 位置排序&#xff0c;默认升序 默认情况下&#xff0c;sort()会按照升序重新排序数组&#xff0c;即最小值在前最大值…...

【现场问题】datax中write部分为Oracle的时候插入clolb类型字段,插入的数据为string且长度过场问题

datax的Oraclewriter 报错显示查询报错展示查找datax中的数据插入模块 报错显示 occurred during batching: ORA-01704: string literal too long 查询报错展示 基本上查到的都是这样的&#xff0c;所以锁定是clob的字段类型的问题&#xff0c;而且是只有Oracle出问题&#…...

ASK、PSK、FSK的调制与解调

ASK、PSK、FSK的调制与解调 本文主要涉及数字信号的调制与解调&#xff0c;内容包括&#xff1a;2ASK、2PSK、2FSK的调制与解调以及频谱分析 关于通信原理还有其他文章可参考&#xff1a; 1、信息量、码元、比特、码元速率、信息速率详细解析——实例分析 2、模拟系统的AM信号的…...

基于XML的声明式事务

场景模拟 参考基于注解的声明式事务 修改Spring的配置文件 将Spring配置文件中去掉tx:annotation-driven标签&#xff0c;并添加配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org…...

力扣labuladong一刷day9滑动窗口共4题

力扣labuladong一刷day9滑动窗口共4题 文章目录 力扣labuladong一刷day9滑动窗口共4题一、76. 最小覆盖子串二、567. 字符串的排列三、438. 找到字符串中所有字母异位词四、3. 无重复字符的最长子串 一、76. 最小覆盖子串 题目链接&#xff1a;https://leetcode.cn/problems/m…...

ubuntu开机系统出错且无法恢复。请联系系统管理员。

背景&#xff1a; ubuntu22.04.2命令行&#xff0c;执行自动安装系统推荐显卡驱动命令&#xff0c;字体变大&#xff0c;重启后出现如下图错误&#xff0c;无法进入系统&#xff0c;无法通过CTRLALTF1-F3进入TTY模式。 解决办法&#xff1a; 1.首先要想办法进入系统&#xff…...

Transformer详解一:transformer的由来和先导知识

目录 参考资料前言一、预训练二、神经网络语言模型&#xff08;NNLM&#xff09;&#xff1a;预测下一个词one-hot编码的缺陷词向量&#xff08;word embedding&#xff09; 三、Word2Vec模型&#xff1a;得到词向量CBOWSkip-gramWord2Vec和NNLM的区别Word2Vec的缺陷 四、ELMO模…...

数字化产品经理的金字塔能力模型

在企业数字化转型的浪潮下&#xff0c;要求IT团队更加主动的服务业务、赋能业务&#xff0c;而数字化产品经理正是IT、业务融合的桥梁&#xff0c;该岗位需要具备业务、技术、商业的复合知识结构&#xff0c;并且拥有很强的自驱力。那么数字化产品经理在企业如何产生价值、赋能…...

这 11 个 for 循环优化你得会

日常开发中&#xff0c;经常会遇到一些循环耗时计算的操作&#xff0c;一般也都会采用 for 循环来处理&#xff0c;for 作为编程入门基础&#xff0c;主要是处理重复的计算操作&#xff0c;虽然简单好用&#xff0c;但在写法上也有很多的考究&#xff0c;如果处理不好&#xff…...

JVM字符串常量池StringTable

目录 一、StringTable为什么要调整 二、String的基本特性 三、String的内存分配 四、字符串拼接操作 五、intern()方法 六、Stringtable的垃圾回收 七、G1中String去重操作 一、StringTable为什么要调整 jdk7之前&#xff0c;hotspot对于方法区的实现是永久代&#xff…...

【华为OD题库-010】寻找矿堆的最大价值-Java

题目 给你一个由0(空地)、1(银矿)、2(金矿)组成的的地图&#xff0c;矿堆只能由上下左右相邻的金矿或银矿连接形成。超出地图范围可以认为是空地。 假设银矿价值1&#xff0c;金矿价值2&#xff0c;请你找出地图中最大价值的矿堆并输出该矿堆的价值 输入描述 地图元素信息如: 2…...

在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch

目录 1 查看本机CUDA版本 2 查看对应CUDA的对应pytorch版本安装 3 用pip 安装 4 用conda安装 5 验证安装 在PyTorch中使用CUDA&#xff0c;根据你的具体环境和需求调整版本号&#xff0c;确保安装的PyTorch版本与你的CUDA版本兼容。 在PyTorch中使用CUDA&#xff0c;你需…...

copilot 产生 python工具函数并生成单元测试

stock.py 这个文件&#xff0c;我只写了注释&#xff08;的开头&#xff09;&#xff0c;大部分注释内容和函数都是copilot # split a string and extract the environment variable from it # input can be , pathabc, pathabc;pathdef, pathabc;pathdef;pathghi # output i…...

缓存与数据库双写一致性几种策略分析

一、背景 在高并发场景中&#xff0c;为防止大量请求直接访问数据库&#xff0c;缓解数据库压力&#xff0c;常用的方式一般会增加缓存层起到缓冲作用&#xff0c;减少数据库压力。引入缓存&#xff0c;就会涉及到缓存与数据库中数据如何保持一致性问题&#xff0c;本文将对几…...

Spring全家桶源码解析--2.6 Spring scope 限制bean的作用范围

文章目录 前言一、Scope是什么&#xff1f;二、Scope使用2.1 单例&#xff1a;2.1.1 单例Bean的特点如下&#xff1a;2.1.2 单例设计模式 与单例bean&#xff1a; 2.2 原型bean&#xff1a;2.2.1 原型Bean的特点&#xff1a;2.2.2 原型Bean的销毁&#xff1a; 2.3 Request bean…...

python 文本纠错库pycorrector的使用(API变更,许多介绍文章已不可用)

pycorrector是一个nice的中文检测库&#xff0c;在最新的版本API变更&#xff0c;导致许多之前的介绍文章不可用。 现将新API粘贴如下。...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...