【C++例题】复数类加减法运算重载—成员函数形式

知识点:

1.两个不同位置的const的不同意义

2.形参有默认值的函数只能在类内给出,类外不能多余声明,即使默认值一样

3.创建一个临时对象调用的是构造函数而非默认的复制构造函数

4.重载的运算符可以当成普通运算符使用,但是要注意其本质是函数调用,要注意本体对象和传入参数的位置

//例8-1_复数类加减法运算重载—成员函数形式
#include<iostream>
using namespace std;
//复数类定义
class Complex {
public:Complex(double r = 0.0, double i = 0.0);Complex operator+(const Complex& c2) const;Complex operator-(const Complex& c2) const;//函数的参数,是一个常量引用,表示该函数接受一个常量引用类型的 Complex 对象作为参数//const在函数声明的末尾表示这个函数是一个常量成员函数,即在这个函数中,不会修改对象的成员变量void display() const;	//输出复数
private:double real;double imag;
};//构造函数
Complex::Complex(double r /* = 0.0 */, double i /* = 0.0 */) :real(r), imag(i) {cout << "调用Complex构造函数" << endl;
}
//注意重载函数定义时的格式
Complex Complex::operator+(const Complex& c2)const {//创建一个无名临时对象作为返回值return Complex(real + c2.real, imag + c2.imag);
}Complex Complex::operator-(const Complex& c2)const {return Complex(real - c2.real, imag - c2.imag);
}
void Complex::display() const {cout << "(" << real << "," << imag << ")" << endl;
}int main() {Complex c1(5, 4), c2(2, 10), c3;cout << "c1="; c1.display();cout << "c2="; c2.display();c3 = c1 - c2;	//调用构造函数//c1 - c2 相当于函数调用 c1.operator-(c2)cout << "c3=c1-c2="; c3.display();c3 = c1 + c2;	//正常引用//c1 + c2 相当于函数调用 c1.operator+(c2)cout << "c3=c1+c2="; c3.display();return 0;
}
//    输出
调用Complex构造函数
调用Complex构造函数
调用Complex构造函数
c1=(5,4)
c2=(2,10)
调用Complex构造函数
c3=c1-c2=(3,-6)
调用Complex构造函数
c3=c1+c2=(7,14)

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

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

相关文章

hsql数据库(HyperSQL )(简单了解一下)

文章目录 一、HyperSQL &#xff08;HSQLDB&#xff09;1、HSQLDB是什么2、安装事务提一嘴特点看官网Datagrip连接HSQLDBMaven地址使用场景 参考文章 一、HyperSQL &#xff08;HSQLDB&#xff09; 1、HSQLDB是什么 HSQLDB (Hyper SQL Database)是一个用Java编写的关系数据库管…

SpringBoot---------整合Mybatisplus

快速入门 第一步&#xff1a;导入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version></dependency> 第二步&#xff1a;编写mapper…

【C++题解】1632. 需要几辆车

问题&#xff1a;1632. 需要几辆车 类型&#xff1a;分支 题目描述&#xff1a; 学校有 n 位同学要外出旅游&#xff0c;一辆大巴车可以坐 30 人&#xff0c;请问需要几辆大巴车&#xff1f; 输入&#xff1a; 一个整数 n&#xff0c;代表同学的总人数。 输出&#xff1a;…

区块链技术在物联网中的应用:连接未来的智能世界

随着物联网&#xff08;IoT&#xff09;的快速发展&#xff0c;越来越多的设备和传感器开始连接到互联网&#xff0c;并产生海量的数据。这些数据不仅具有巨大的商业价值&#xff0c;还能够为我们的生活和工作带来巨大的便利和效率提升。然而&#xff0c;与此同时&#xff0c;物…

明日方舟游戏助手:一键完成日常任务 | 开源日报 No.233

MaaAssistantArknights/MaaAssistantArknights Stars: 11.6k License: AGPL-3.0 MaaAssistantArknights 是一款《明日方舟》游戏的小助手&#xff0c;基于图像识别技术&#xff0c;支持一键完成全部日常任务。 刷理智、掉落识别及上传企鹅物流智能基建换班、自动计算干员效率…

STM32 串口打印乱码(Cubemx)

STM32 串口打印乱码&#xff08;Cubemx&#xff09; 时钟配置错误&#xff0c;CubeMX默认的外部晶振是25MHz&#xff0c;而板载的晶振为8MHzSTM32F407修改程序将外部25M晶振修改为8M&#xff08;标准库、HAL库&#xff09; 核心问题 芯片型号与晶振配置&#xff1a;使用的ST…

网络安全-Diffie Hellman密钥协商

密钥协商是保密通信双方&#xff08;或更多方&#xff09;通过公开信道来共同形成密钥的过程。一个密钥协商方案中&#xff0c;密钥的值是某个函数值&#xff0c;其输入量由两个成员&#xff08;或更多方&#xff09;来提供。密钥协商的记过是参与协商的双方&#xff08;或更多…

【linux】Linux第一个小程序-进度条

1. 预备知识&#xff1a;回车和换行 回车&#xff08;Carriage Return&#xff0c;CR&#xff09;&#xff1a; 在早期的机械打字机中&#xff0c;回车指的是将打字机的打印头移回到行首的操作&#xff0c;这样打印头就可以开始新的一行的打印。在ASCII编码中&#xff0c;回车用…

AIGC-stable-diffusion(文本生成图片)+PaddleHub/HuggingFace

功能 stable-diffusion(文本生成图片)PaddleHub&#xff0c;HuggingFace两种调用方式 PaddleHub 环境 pip install paddlepaddle-gpu pip install paddlehub 代码 from PIL import Image import paddlehub as hub module hub.Module(namestable_diffusion)## 保存在demo…

NXP恩智浦 S32G电源管理芯片 VR5510 安全概念 Safety Concept (万字长文详解,配21张彩图)

NXP恩智浦 S32G电源管理芯片 VR5510 安全概念 Safety Concept (万字长文详解&#xff0c;配21张彩图) 1. 简介 本应用笔记描述了与S32G处理器和VR5510 PMIC相关的安全概念。该文档涵盖了S32G和VR5510的安全功能以及它们如何相互作用&#xff0c;以确保对ASIL D安全完整性级别…

transformers - 预测中间词

代码 from transformers import AutoTokenizer#加载编码器 tokenizer AutoTokenizer.from_pretrained(distilroberta-base, use_fastTrue)print(tokenizer)#编码试算 tokenizer.batch_encode_plus([hide new secretions from the parental units,contains no wit , only labor…

@PropertySource的使用

假设我们有一个名为 database.properties 的属性文件&#xff0c;内容如下&#xff0c;该文件位于项目的类路径 (resources 目录) 下&#xff1a; # database.properties db.urljdbc:mysql://localhost:3306/mydb db.usernameroot db.passwordpassword 然后&#xff0c;创建一…

STM32,复位和时钟控制

外部时钟 HSE 以后需要用到什么就这样直接拿去配就行了

【文件上传与包含漏洞综合利用】DVWA-文件上传-难度:High

实验过程和结果 步骤1&#xff1a;尝试直接上传php木马&#xff0c;失败&#xff0c;截图如下&#xff1a; 步骤2&#xff1a;将php木马后缀改为jpeg尝试上传&#xff0c;依旧失败&#xff0c;截图如下&#xff1a; 步骤3&#xff1a;将真实的jpeg图片1.jpeg上传&#xff0c;成…

CNPM、NPM 和 Yarn:JavaScript 包管理器的比较

在现代Web开发中&#xff0c;包管理器是不可或缺的工具&#xff0c;它们帮助开发者管理项目中使用的各种第三方库。在JavaScript世界里&#xff0c;最常见的包管理器有 NPM、Yarn 和 CNPM。本文将详细介绍这三者的不同之处&#xff0c;并用简单的例子来帮助初学者理解每种工具的…

企业微信hook接口协议,ipad协议http,外部联系人图片视频文件下载

外部联系人文件下载 参数名必选类型说明file_id是StringCDNkeyopenim_cdn_authkey是String认证keyaes_key是Stringaes_keysize是int文件大小 请求示例 {"url": "https://imunion.weixin.qq.com/cgi-bin/mmae-bin/tpdownloadmedia?paramv1_e80c6c6c0cxxxx3544d9…

AI作画算法原理详解

人工智能绘画&#xff08;AI绘画&#xff09;算法通常基于深度学习框架&#xff0c;尤其是生成对抗网络&#xff08;GANs&#xff09;。这些算法通过训练大量的艺术作品数据&#xff0c;学会生成新的图像&#xff0c;这些图像在风格和内容上与训练数据相似。 生成对抗网络&…

智慧火电厂合集 | 数字孪生助推能源革命

火电厂在发电领域中扮演着举足轻重的角色。主要通过燃烧如煤、石油或天然气等化石燃料来产生电力。尽管随着可再生能源技术的进步导致其比重有所减少&#xff0c;但直至 2023 年&#xff0c;火电依然是全球主要的电力来源之一。 通过图扑软件自主研发 HT for Web 产品&#xf…

[Algorithm][前缀和][和为K的子数组][和可被K整除的子数组][连续数组][矩阵区域和]详细讲解

目录 1.和为 K 的子数组1.题目链接2.算法原理详解3.代码实现 2.和可被 K 整除的子数组1.题目链接2.算法原理详解3.代码实现 3.连续数组1.题目链接2.算法原理详解3.代码实现 4.矩阵区域和1.题目链接2.算法原理详解3.代码实现 1.和为 K 的子数组 1.题目链接 和为 K 的子数组 2.…

牛客 题解

文章目录 day4_17**BC149** **简写单词**思路&#xff1a;模拟代码&#xff1a; dd爱框框思路&#xff1a;滑动窗口&#xff08;同向双指针&#xff09;代码&#xff1a; 除2&#xff01;思路&#xff1a;模拟贪心堆代码&#xff1a; day4_17 BC149 简写单词 https://www.now…