C++运算符重载—复数

C++复数类实现运算符重载 目录: 1.关于运算符重载 2.运算符重载的方式:成员函数和友元函数 3.只能用成员函数重载的运算符 4.利用复数类实现运算符重载 1.关于运算符重载 运算符重载就是对现有的运算符重新定义,赋予其另一种功能,以实现不同的数据类型。其本质还是函数的重载,使用运算符重载可以使程序更清晰。运算符重载的关键字operator。C++绝大多数运算符都可以重载,不能重载的运算符有. :: .... 阅读详情

C++运算符重载

案例:复数

Complex.h

#pragma once
#include <iostream>

class Complex
{
	friend std::ostream& operator<<(std::ostream &out, const Complex &c);
public:
	Complex(int real, int image);
	~Complex();

	Complex operator+(const Complex &c);
	Complex& operator+=(const Complex &c);
	Complex& operator++();			//前置
	const Complex operator++(int);	//后置
	
private:
	int m_real;
	int m_imag;
};

std::ostream& operator<<(std::ostream &out, const Complex &c);

Complex.cpp

#include "Complex.h"

Complex::Complex(int real, int imag)
	: m_real(real)
	, m_imag(imag) 
{
}

Complex::~Complex()
{
}

Complex Complex::operator+(const Complex & c)
{
	return Complex(m_real+c.m_real, m_imag+c.m_imag);
}

Complex& Complex::operator+=(const Complex & c)
{
	this->m_real += c.m_real;
	this->m_imag += c.m_imag;

	return *this;
}

Complex& Complex::operator++()
{
	this->m_real++;
	this->m_imag++;

	return *this;
}

const Complex Complex::operator++(int)
{
	Complex tmp = *this;
	this->m_real++;
	this->m_imag++;

	return tmp;
}

std::ostream& operator<<(std::ostream &out, const Complex &c)
{
	return out << c.m_real << " + " << c.m_imag << "i";
}

main.cpp

#include "Complex.h"

int main()
{
	std::cout << Complex(1, 2) + Complex(2, 1) << std::endl;
	std::cout << ++Complex(1, 1) << std::endl;
	std::cout << Complex(0, 0)++ << std::endl;
	system("pause");
	return 0;
}
C++中运算符重载实现复数的加减乘除 #include &quot;stdafx.h&quot; #include &quot;Complex.h&quot; #include &amp;lt;iostream&amp;gt; using namespace std; //输入运算符重载 istream &amp;amp; operator &amp;gt;&amp;gt;(istream &amp;amp;in,Complex &amp;am 阅读详情

相关推荐

C++复数的运算、运算符重载

类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言,因此学习C++的类是掌握面向对象编程的一个非常好的途经。本文主要是关于运算符重载的基础案例,对运算符 + 进行重载,使其能够加上复数。

Viewinfinitely的博客 1716

【C++实验】运算符重载(复数加法;复数除法)

定义一个复数类Complex,重载运算法“/”,使之能用于复数的除法运算。将运算符重载为普通函数(非成员、非友元)、成员函数、友元函数。分别编写程序,求两个复数之商。

如果一直做自己能力范围之内的事,那就很难进步 1420

C++运算符重载——复数的加减乘除

偶然翻到之前上面向对象程序设计实验课做的作业,po出来一下,相信以后还会有人学到并写到。 #include<iostream> #include<stdlib.h> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0.0) {real=r;imag=i;} Comp...

lvshaoshishang的博客 1445

C++复数运算的运算符重载

C++提供了运算符重载,极大地方便了自定义类型之间的运算, 本文就最简单的复数运算实现让初学者体会运算符重载的作用以及运算符重载的原理。

?.?的专栏 1万+

从C++运算符重载到类模板(以复数类为例)

这几天在用C++写一个本专业相关的项目时,涉及到的频域信号是复数(s=a+bi),不是C++内置的数据类型,无法直接调用运算符进行计算,于是就自己写了一个复数类来实现了复数运算的相关功能。虽然C++标准库std中已经实现了complex类,包含头文件(#include < complex >)就可以直接调用,但是小编觉得复数类是学习C++运算符重载一个很好的案例,因为会涉及加、减、乘、除、相等、赋值等这些常见的运算符重载。接下来我们一起来学习一下运算符重载。 一、运算符重载概念引入 像上图的传

weixin_49199646的博客 1294

【C++入门】运算符重载

C++ 运算符重载(Operator Overloading)是一项强大的特性,允许程序员为用户自定义类型(如类和结构体)定义新的操作方式。通过运算符重载,我们可以使自定义类型的实例能够以类似于内置类型的方式进行操作,从而提高代码的可读性和简洁性。例如,可以为自定义的复数类(Complex)重载加号运算符,使两个复数对象可以直接相加。本篇文章将介绍 C++ 运算符重载的基本概念和注意事项,以帮助读者更好地理解和应用这一特性。运算符重载是一种允许程序员为自定义类型定义新行为的技术。

m0_62599305的博客 1073

【C++之运算符重载1】复数类 Complex 重载运算符 “+”

题目要求: 定义一个复数类 Complex ,重载运算符 “+” ,使之能用于复数的加法运算。参加运算的两个运算量可以都是复数类对象,也可以其中一个是整数。例如:c1+c2, c1+i, i+c1 均合法(设 i 为整数,c1、c2为复数)。编程序,分别求两个复数之和、整数和复数之和。 ——谭浩强的《C++面向对象程序设计》第4章习题第3小题...

霍喜猫的博客 7676

c++运算符重载实现复数的四则运算

#include <iostream> using std::cout; using std::cin; using std::endl; class complex { public : friend complex operator -(complex &a, complex &b) { complex c; c.s=a.s-b.s; c.x=a.x-b.x; return c; }

运算符重载(复数类(Complex))

复数类

dangzhangjing97的博客 2954

C++复数定义和重载运算符

C++复数定义和重载运算符,包括加减乘除,取实部,虚部等

C++ 复数类的实现 运算符重载

复数类的实现 运算符的重载 适合初学者学习查看

C++ 重载运算符实现复数运算

C++ 重载运算符实现复数相加1、重载运算符为成员函数2、重载运算符为友元函数 1、重载运算符为成员函数 Complex.h #ifndef COMPLEX_H #define COMPLEX_H #include <iostream> using namespace std; class Complex { public: Complex(); Complex(f...

墨上烟雨 2108

TSMaster实战:手把手教你用C小程序发送自定义CAN报文(附完整代码)

本文详细解析了如何使用TSMaster的C小程序功能实现自定义CAN报文发送,涵盖环境配置、DBC集成、按键触发等实战技巧。通过完整代码示例和高级调试方法,帮助汽车电子工程师快速掌握TSMaster在CAN总线通信中的灵活应用,提升开发效率。

weixin_29184371的博客 574

C++ 复数的加减乘运算(运算符重载)

题目描述 定义一个复数类,通过重载运算符:+、-、*,实现两个复数之间的各种运算。 要求如下: 1.实现Complex类; 2.编写main函数,初始化两个Complex对象,计算它们之间的加减乘,并输出结果。 复数相乘的运算规则 设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i. 输入 第1行:输入两个数值,分别为第一个Complex对象的实部和虚部。 第2行:输入两个数值,分别为第二个Complex对象的实部.

hhhertzzz的博客 9099

从零到精通:ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程

本文详细介绍了ROS2 MoveIt2与MPC机械臂轨迹规划的完整配置流程,从环境准备到高级功能扩展,帮助开发者实现精准控制。通过集成模型预测控制(MPC),机械臂能够优化复杂轨迹规划,处理动态避障,提升工业自动化效率。

juice的博客 707

全志T113 Tina5.0开发:(零)源码下载&修改调试串口

本文章主要作为自己的笔记,如有错误欢迎指出$ repo start product-da-t113-tina-stable --all # 全部下载完成之后,创建分支运行过程可能会出现版本问题;rm -rf .repo //先删除试试( 我安装的是3.6版本)

u014428915的博客 1166

C++语言利用函数重载和运算符重载完成复数运算

文章目录1.重载是什么?(1).在C++中的函数重载(2).在C++中的运算符重载2.复数的相关知识(部分)(1).复数的定义和概念(2).复数的几何意义(3).复数代数形式的加减法运算(4).复数的乘除法运算3.C++中的友元函数4.思路和设计(1).程序组成和思路(2).部分函数对应源代码的作用(3).整体源代码5.参考资料 1.重载是什么? 教材上和网上讲的很多都晦涩难懂。用我自己的话来讲: C++对函数和运算符可以有多个定义,类似于一词多义。分别称为函数重载和运算符重载。

Junhao's Blog 4871

23、资产分散化与有效前沿:投资组合优化的核心策略

本文深入探讨了现代投资组合理论的核心概念,包括分散投资的重要性、均值-方差优化框架以及有效前沿的构建与应用。通过案例分析和数学模型,阐述了如何通过科学方法降低投资组合风险并实现最优风险收益权衡。文章还介绍了实际应用中的求解方法与决策流程,为投资者提供系统的投资组合优化指导。

cc789的博客 114

C++实现的复数运算符重载

//#include //using namespace std; #include class Complex { private: double real; double img; public: Complex(double lp=0.0,double rp=0.0);//构造函数 Complex(const Complex &rth);//拷贝构造函数 C

大灰狼的技术积累处 616

基于STM32设计的校园智慧路灯系统(华为云IOT)(212)

当前设计并研发了基于STM32的智慧路灯系统,本系统的目的是打造一个高效节能、智能化管理的校园照明环境。通过集成STM32F103RCT6高性能微控制器为核心,结合多种传感器模块如BH1750光敏传感器、热释电人体感应模块以及中科微电子GPS模块等,实现了对校园路灯的精准控制与实时监控。

5137

字节最新开源模型 DA3(Depth Anything 3)使用教程(一)从任意视角恢复视觉空间

本文介绍DepthAnything3(DA3)模型,一种能够从任意视觉输入中预测几何结构的创新解决方案。DA3采用Transformer骨干网络,通过统一的深度光线表示简化学习过程,支持单目/多视角深度估计、姿态估计和3D高斯预测等多项任务。模型系列包含基础版、度量级和单目专用版本,其中嵌套版本DA3NESTED-GIANT-LARGE表现最佳。代码库提供交互界面、CLI工具和多格式导出功能,支持模块化扩展。实验表明DA3在各项任务上超越现有模型,所有训练数据均来自公开学术数据集。

2506_90492529的博客 2549

[C++] 运算符重载总结及复数类实现

C++ 预定义中的运算符的操作对象只局限于基本的内置数据类型,但是对于我们自定义的类型(类)是没有办法操作的。但是大多时候我们需要对我们定义的类型进行类似的运算,这个时候就需要我们对这么运算符进行重新定义,赋予其新的功能,以满足自身的需求。 运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的 C++ 多态。目的在于让人能够用同名的函数来完成不同的基本操作。要重载运算符,需要使用被称为运算符函数的特殊函数形式,运算符函数形式:operator p(argument-list)//operator后

柚子树's Blog 871

UE5实现物体高亮描边效果(含UE相关源码浅析)

UE5实现物体高亮描边效果

专注GIS开发 7334

C++ 复数类运算符重载

题目描述 定义一个复数类Complex,重载运算符"*","<<",">>",使之能够用于复数的乘法、输入、输出 main函数中定义复数对象c1,c2,c3,c4,实现 cin>>c1>>c2>>c3; c4=c1*c2*c3; cout<<c4<<endl; 输入描述 输入三个复数,必须用cin>>c1>>c2>>c3; 输出描述 输出一个复数,必须用cout<<c4&l

꧁༺ʚvv༒catɞ༻꧂的博客 1315

STM32实战开发(76):STM32开发无线传感器网络(WSN)完整实现

本文介绍了如何基于STM32开发无线传感器网络,包括硬件选择、通信协议、系统设计和编程实现。通过STM32的强大性能和低功耗特性,我们能够构建高效、可靠的无线传感器网络。无论是Zigbee、LoRa、Wi-Fi还是BLE协议,STM32都能够与多种通信模块进行兼容,满足不同应用的需求。希望这篇文章能帮助您了解无线传感器网络的构建流程,并为您的项目提供有价值的参考。

2201_76125393的博客 1059

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【C++】复数的运算符重载

运算符重载的定义: 用户对于自定义类型的运算操作,例如复数的运算。需要重新定义运算符号(创建函数)。         除了类属关系运算符"."、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。 复数的运算符重载如下: #include #include using namespac

Irean_Lau的专栏 3068

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: Qt颜色下拉框菜单
下一篇: C链表模拟汉诺塔
Superain丶
博客等级 码龄11年 9粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值