例题:定义一个复数类Complex,重载运算符“+”、“=”,“*”,“、”,使之能进行复数的加、减、乘、除。...【面向对象设计】

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

题目:

定义一个复数类Complex,重载运算符“+”、“=”,“*”,“、”,使之能进行复数的加、减、乘、除。运算符重载函数作为Complex类得成员函数。编程序,分别求两个复数之和、差、积和商。

解答: 

#include <iostream>
#include <cmath>
using namespace std;
class Complex{
public:
    Complex(double r=0,double i=0);
    Complex operator +(const Complex& c);
    Complex operator -(const Complex& c);
    Complex operator *(const Complex& c);
	Complex operator /(const Complex& c);
    void print() const;
private:
    double real, imag;
};
Complex::Complex(double r,double i){
    real=r;   
    imag=i;
}
Complex Complex::operator +(const Complex& c){
    double r=real+c.real;
    double i=imag+c.imag;
    return Complex(r,i);
}
Complex Complex::operator -(const Complex& c){
    double r=real-c.real;
    double i=imag-c.imag;
    return Complex(r,i);
}
Complex Complex::operator *(const Complex& c){
    double r=real * c.real - imag * c.imag;
    double i=real * c.imag + imag * c.real;
    return Complex(r,i);
}
Complex Complex::operator /(const Complex& c){
	double t = pow(c.imag,2) + pow(c.real,2);
    double r=real * c.real + imag * c.imag;
    double i=imag * c.real -real * c.imag;
    return Complex(r/t,i/t);
}
void Complex::print() const{
    cout<<'('<<real<<','<<imag<<')'<<endl;
}

int main()
{
	Complex a(3,2),b(0,3),c;
	c = a + b;
	c.print();
	c = a - b;
	c.print();
	c = a * b;
	c.print();
	c = a / b;
	c.print();
	return 0;
}

 

C++实验5运算符重载 开发工具及环境:PC机一套 Visual Studio 2010 实验要求: 1.硬件基本配置:Intel PentiumIII以上级别的CPU,大于64MB的内存。 2.软件要求:Window 2000操作系统,Visual Studio 6.0或更高版本开发环 境。 3.实验学时:2学时 4.实现实验内容中的题目。 5.写实验报告 实验目的: 进一步了解运算符重载的概念和使用方法。 掌握几种常... 阅读详情

相关推荐

定义一个复数类complex,包含两个属性:实部和虚部,包含构造函数,包含成员函数void display()输出,包括成员函数complex add(complex a), 进行复数加法。

定义一个复数类complex,包含两个属性:实部和虚部,包含构造函数,包含成员函数void display()输出,包括成员函数complex add(complex a), 进行复数加法,在主函数种定义两个复数对象,进行复数之间的加法运算。 提示:实现复数相加运算,通过类的成员函数和类的友元函数都可以实现。 方法一: #include <iostream> #include <cmath> using namespace std; class Complex { private

Lunatic_H的博客 1万+

R6-6 复数的加减运算(运算符重载) (15 分)

题目要求: ###复数加减(运算符重载) 声明一个复数类CComplex(类私有数据成员为double型的real和image) 定义构造函数,用于指定复数的实部与虚部。 重载<<运算符,以格式real+image i的格式输出当前对象(当虚部为非负数时,实部虚部中间用+号连接,当虚部为负数时,实部虚部用-号连接:如3+4i,3-4i,3+0i)。 重载+运算符,实现两个复数对象之和(实部虚部分别相加)。 重载-运算符,实现两个复数对象的差(实部虚部分别相减)。 输入格式: 输入有两

77生活工作室的博客 8738

复数(Complex)类及FFT的C++实现

===○专业造轮子○=== 因为一些原因需要额外编写傅里叶变换(Fourier Transform)的实现代码, 而傅里叶变换需要复数的支持,因此额外编写了一个复数类。 首先是复数类Complex的设计,很简单,数据域只有实部和虚部,为了方便外部操作, 将数据设置为公开访问,大致如下 class Complex { public:     Complex();

B0tt3rf1y 7931

OOP习题(10)

实现Point类。在这里描述类定义。

qq_68937706的博客 1666

设计复数类Complex,实现运算符重载。

设计复数类Complex,实现运算符重载。

Amonglnm的博客 2537

c++复数计算器

支持复数运算: 程序实现了复数类,支持复数的加减乘除运算。用户可以输入任意复数,程序会自动进行相应的运算并输出结果。输入输出格式灵活: 输入和输出格式灵活多样,用户可以输入形如"a+bi"的复数格式,输出结果也会以相同格式显示,便于用户理解和使用。支持零虚部处理: 程序能够正确处理零虚部的复数,当用户输入实部为零时,程序会自动将复数显示为纯虚数,如"0+2i"。这个项目的价值还在于其可扩展性。

weixin_64055968的博客 1370

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

重载<<运算符,以格式real+image i的格式输出当前对象(当虚部为非负数时,实部虚部中间用+号连接,当虚部为负数时,实部虚部用-号连接:如3+4i,3-4i,3+0i)。重载+运算符,实现两个复数对象之和(实部虚部分别相加)。重载-运算符,实现两个复数对象的差(实部虚部分别相减)。第一行是复数c1的实部与虚部,以空格分隔;第二行是复数c2的实部与虚部,以空格分隔。定义构造函数,用于指定复数的实部与虚部。###复数加减(运算符重载)第三行是c1与c2之和;第四行是c1与c2之差;

Klein_21的博客 1406

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

为了更灵活地控制复数的输出格式,我们可以考虑以下几点:提供默认格式化输出,例如输出时保留小数点后两位。允许用户指定输出精度,例如通过传递额外的参数来控制小数点后的位数。实现一个全局函数,用于调整复数类的默认输出格式。接下来是一个简单的代码示例,展示了如何重载输出运算符以及如何定义格式化输出。#include <iomanip> // 用于控制输出格式private:public:// 默认构造函数和其他构造函数// ...// 重载输出运算符。

weixin_35899324的博客 863

声明一个复数类Complex(类私有数据成员为double型的real和image)1)读入两个实数,用于初始化对象c1。 (2)读入两个实数,用于初始化对象c2。 (3)计算c1与c2相加结果,

main.cpp: //main.cpp #include #include “Complex.h” using namespace std; void Add() { int a,b,c,d; Complex m(1,2),n(2,3); cout<<’(’<<m.real+n.real<<’,’<<m.image+n.image<<’)’<<endl; cout<<’(’<<-(m.real+n.real)

z2250的博客 4297

定义复数类Complex,进行运算符重载

定义复数类Complex,实现复数的+、-、*、/数学运算,=、+=、-=、*=、/=赋值计算,++a、a++、--a、a—自增自减,==、!=关系运算

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4004

面对对象程序设计之运算符重载(1)定义一个复数类Complex,重载运算符“+”、“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。

定义一个复数类Complex,重载运算符“+”、“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编程序,分别计算两个复数之和、差、积和商。”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编程序,求两个复数之和。其实,运算符重载很简单,搞懂加法,其他就套就可以了。【例】定义一个复数类Complex,重载运算符“回到这题,我们可以仿照上面编写程序。首先,我们来介绍一个列子。...

爱吃饼干的小白鼠的博客 9102

三相交错并联的boost变换器simulink仿真,电流双闭环控制策略

文章介绍了一种基于Simulink的三通道交错并联双向Buck-Boost变换器的设计与仿真。该变换器采用电压外环和三电流内环的控制策略,并通过120°载波移相技术实现Buck模式与Boost模式之间的平滑切换,有效避免了过压和过流问题。交错并联的拓扑结构不仅减少了电感电流的纹波,还缩小了每相电感的体积,提升了电路的响应速度,适用于储能系统。仿真过程完全离散化,采用离散解析器,主电路与控制部分以不同步长运行,更贴近实际应用。控制与采样环节均为手工搭建,未使用Matlab自带模块,展示了三相交错并联Boost

2510_91195931的博客 1707

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

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

霍喜猫的博客 7676

自学篇--使用keil5.23创建一个stm32工程并编译(固件包自带版本)

之前在本科学习阶段学习过一点51单片机的知识,可是因为基本没有实践过几次现在已经完全忘记了。。前几天老师突然丢给我几个板子说让我把程序编译、烧写环境装好,当时我就震惊了,不过经过三四天的自我摸索,之后参考他人的学习经验,现在已经基本能处理这个问题了,所以为了方便后面的学者,主要也是为了把自己这几天的学习成果记录一下,我在这里把这个过程写下来。(因为刚刚接触,很多原理性的东西都还不懂,只是一个操作步

yang_csdnForOBTS的博客 8659

基于深度学习的航拍图像中地物变化检测

随着无人机技术的飞速发展,航拍图像成为获取地表信息的重要手段之一。然而,由于地球表面的不断变化,监测和识别航拍图像中的地物变化成为一项具有挑战性的任务。在人工智能领域,深度学习技术的兴起为地物变化检测提供了全新的解决方案。本文将介绍基于深度学习的航拍图像中地物变化检测的方法,并附上相应的代码实例。

一键难忘的博客 4177

C++面向对象 - 运算符重载、友元函数和STL

复数运算 任务描述 本关任务:设计一个复数类并实现复数的三种运算。 相关知识 所谓重载,就是赋予新的含义。函数重载可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载也是一个道理,同一个运算符可以有不同的功能。本关我们就一起来学习运算符重载的使用。 运算符重载 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。 重载运算符声明方式如普通成员函数一样,只不过他的名

念去去 1万+

【Network Management】AUTOSAR局部网络管理从0到1配置实践

AUTOSAR局部网络管理从0到1配置实践

qq_36056498的博客 2914

C++ //习题 10.2 定义一个复数类Complex,重载运算符+,-,*,/,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积和商

C++程序设计(第三版) 谭浩强 习题10.2 个人设计 习题 10.2 定义一个复数类Complex,重载运算符+,-,*,/,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积和商。 代码块: #include &amp;lt;iostream&amp;gt; using namespace std; class Complex { ...

Made in Code 1万+

【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000

检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。

学无止境 828

第25节:cesium 地形开挖综合实例-地下管网(含源码+视频)

地图开挖综合示例,包括底图切换,绘制开挖区域,移除开挖区域,影藏地图等等。

qq_29384639的博客 1782

C++封装复数类,实现复数运算

在复数类Complex中定义了两个私有的成员变量 real 和 img 分别表示复数的实部和虚部,然后定义了几个共有的成员函数:两个构造方法,一个为不带参的默认构造函数,另一个为 带两个参数的构造函数,通过该构造函数实现对私有成员变量real和img的初始化,然后是一个没有返回值对的disp()函数用来显示输出复数的值,接下来就是对四则运算的重载函数和一个赋值重载运算符的重载,用来计算该复数的...

qq_40871196的博客 5219

图神经网络实战(21)——图神经网络的可解释性

在本节中,我们探讨了应用于图神经网络 (Graph Neural Networks, GNN) 的可解释性人工智能 (Explainable Artificial Intelligence, XAI) 技术。可解释性是许多领域的关键要素,可以帮助我们建立更好的模型。我们介绍了不同的局部解释技术,并重点讨论了 GNNExplainer (基于扰动的方法),在图分类任务中应用 GNNExplainer。

盼小辉丶的博客 9539

python运算符重载、并且编写复数类的加减乘除_编程基础篇:定义一个复数类Complex,重载运算符“+,-,*,/”,使之能用于复数的加减乘除.....出现的问题及代码...

定义一个复数类Complex,重载运算符“+”、“-”、“*”、“/”,使之能用于复数的加、减、乘、除。要求:将“+”和“-”的运算符重载函数作为Complex的成员函数;将“*”和“/”的运算符重载函数作为友元函数。编写程序,分别求两个复数之和、差、积、商。提示:若已知c1=a+bi,c2=c+di,则:c1+c2=(a+c)+(b+d)ic1-c2=(a-c)+(b-d)ic1*c2=(ac...

weixin_30873127的博客 1733

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

编程基础篇:定义一个复数类Complex,重载运算符“+,-,*,/”,使之能用于复数的加减乘除.....出现的问题及代码

 定义一个复数类Complex,重载运算符“+”、“-”、“*”、“/”,使之能用于复数的加、减、乘、除。要求:将“+”和“-”的运算符重载函数作为Complex的成员函数;将“*”和“/” 的运算符重载函数作为友元函数。编写程序,分别求两个复数之和、差、积、商。 提示:若已知c1=a+bi,c2=c+di,则: c1+c2=(a+c)+(b+d)i c1-c2=(a-c)+(b-d)i c1*c...

设计师养成记 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

利用重载运算符实现两个复数相加、减、乘、除

声明一个复数类 Complex,重载运算符”+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除,运算符重载函数作为 Complex类的成员函数。编程序,分别求两个复数之和、差、积和商。 1.程序代码: 2.运行结果:...

m0_55726741的博客 2474
上一篇: 构造函数和析构函数,何时需要自定义问题?【C++程序设计】
下一篇: 例题:写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用函数printArea分别输出面积...【面向对象设计】
蓝莓派Alex
博客等级 码龄15年 147粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值