C++复数的运算、运算符重载
文章目录
- 一、 复数的运算
- 二、利用重载运算符+来实现复数的加法运算
一、 复数的运算
1、算法详解【在注释中】
#include <iostream>
using namespace std;class Complex
{public:Complex(){real=0; imag=0;} //定义构造函数,对私有数据成员初始化为0Complex(double r, double i){real=r; imag=i;} //构造函数的重载,两个double类型的构造函数Complex complex_add(Complex &c2); //声明复数相加函数,类型为Complex类,引用对象c2 void display(); //声明普通成员函数
private:double real; //定义私有成员数据 double imag;
};//定义复数相加函数,返回值类型为Complex自定义类,参数为引用Complex类型的对象c2
Complex Complex::complex_add(Complex &c2)
{Complex c; //定义自定义Complex类型的对象c(实例化对象)//实部与虚部分别相加 c.real= real + c2.real; //将初始化数据real加上传入的引用对象real数据,赋值给局部Complex对象(变量)的real值中c.imag= imag + c2.imag; return c; //返回局部对象c
}//定义显示函数
void Complex::display()
{cout << "(" << real << "," << imag << "i)" << endl;
} int main()
{//实例化3个对象,分别给构造函数传入参数,c3对象不传入参数 Complex c1(3,4), c2(5,-10), c3;c3= c1.complex_add(c2); //调用对象c1复数相加函数,传入对象c2,进行运算。返回给空对象c3 cout << "c1="; c1.display(); //调用c1的成员函数display,输出c1的值 cout << "c2="; c2.display(); //调用c2的成员函数display,输出c2的值 cout << "c3="; c3.display(); //调用c3的成员函数display,输出c3的值 return 0;
}
2、执行结果
二、利用重载运算符+来实现复数的加法运算
1、算法详解【注释中】
#include <iostream>
using namespace std;//对运算符 + 进行重载,使其能够加上复数
class Complex
{public:Complex(){real=0; imag=0;} //定义构造函数,对私有数据成员初始化为0Complex(double r, double i){real=r; imag=i;} //构造函数的重载,两个double类型的构造函数Complex operator + (Complex &c2); //声明重载运算符+的函数,类型为Complex,参数为对象c2 void display(); //声明普通成员函数
private:double real; //定义私有成员数据 double imag;
};//定义载运算符+的函数,类型为Complex,参数为引用Complex类型的对象c2
Complex Complex::operator +(Complex &c2)
{Complex c; //定义自定义Complex类型的对象c(实例化对象)//实部与虚部分别相加 c.real= real + c2.real; //将初始化数据real加上传入的引用对象real数据,赋值给局部Complex对象(变量)的real值中c.imag= imag + c2.imag; return c; //返回局部对象c
}//定义显示函数
void Complex::display()
{cout << "(" << real << "," << imag << "i)" << endl;
} int main()
{//实例化3个对象,分别给构造函数传入参数,c3对象不传入参数 Complex c1(3,4), c2(5,-10), c3;c3= c1 + c2; //运算符+重载完成后,就可以直接使用了,使用时其实就是调用Complex类的operator+函数 //相当于//c1.operator +(c2); cout << "c1="; c1.display(); //调用c1的成员函数display,输出c1的值 cout << "c2="; c2.display(); //调用c2的成员函数display,输出c2的值 cout << "c3="; c3.display(); //调用c3的成员函数display,输出c3的值 return 0;
}
2、执行结果
C++复数的运算、运算符重载相关推荐
- 4-1 复数类的运算符重载
4-1 复数类的运算符重载 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 通过本题目的练习 ...
- +、-、*、/复数与整数运算符重载
7-8 +.-.*./运算符重载 (10 分) 编写程序实现+ - * / 运算符重载,主要功能如下: 1.实现两复数(c1与c2)的加减乘除运算 2.实现复数c1与整数num的加减乘除运算 3.实现 ...
- 复数中的运算符重载(续)
问题及代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:李盈盈 * 完成日期:20 ...
- C++编程练习:计算长方体体积、对象数组求学生成绩最高者、销售应用问题、重载复数加法运算
目录 一.需要求3个长方体的体积,请编一个基于对象的程序.数据成员包括length(长).width(宽).height(高).要求同成员函数实现以下功能. 二.建立一个对象数组,内放5个学生的数据( ...
- c++友元函数及运算符重载
c++的类和java的类机制着实不大一样,不仅仅是语法,还包括一些特殊的东西,如c++用友元函数来破坏类的封装性,使得外界(友元函数体)可以访问类的私有属性,而java呢,java则可以通过反射机制 ...
- 【C++实验】运算符重载(两个矩阵相加)
运算符重载 运算符重载概念 对已有的运算符赋予新的含义,用一个运算符表示不同功能的运算,从而适用于用户自定义类型的数据(比如复数.矩阵等)之间的运算 运算符重载方法 定义一个重载运算符函数,在需要时系 ...
- 定义复数类Complex,重载运算符“+”,使之用于复数的加法运算
定义复数类Complex,重载运算符"+",使之用于复数的加法运算.将运算符函数重载为非成员.非友元的普通函数. C++代码实现: #include<iostream> ...
- C++运算符重载(复数中除法(“/”)数学运算公式)
假设x为实部,y为虚部. 定义复数A,复数B,复数t: t.x=((A.x*B.x)+(A.y*B.y))/((B.x*B.x)+(B.y*B.y)); t.y=((A.y*B.x)-(A.x ...
- [YTU]_2535( C++复数运算符重载(+与))
题目描述 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算与输出操作. (1)参加运算的两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意.例如,c ...
最新文章
- react项目启动invalid host header问题
- tableview 的小 点点,
- 遗忘root用户的密码
- BroadcastReceiver应用详解(转)
- javascript -- 事件--事件流-- 冒泡 --捕获
- ios弧形进度条_iOS实现一个颜色渐变的弧形进度条
- 很感谢你能来,不遗憾你离开(好文章)
- STL sort 函数实现详解 ZZ
- ansys与solidworks关联失败,将SolidWorks模型导入ansys划分网格总是提示错误
- layui自定义表单验证无效
- html 图片 透明颜色,CSS实现图片变灰色及透明度
- 提高电脑运行速度WIN7
- Android ANR原理代码分析(三)
- 论文笔记: 多标签学习 PML-NI 算法
- 苹果计算机密码bug,苹果iOS 13系统新BUG:快速输入密码,解锁无效
- 只要五分钟,让你成功接入Twitter的第三方登录
- android apk编译打包过程
- 在Power BI中用DAX新建列的方式进行累计求和
- 一文告诉你CXL是什么,有什么新的机会 (上)
- R中时间序列分析-趋势分析Trend
热门文章
- C标签加EL表达式在jsp页面实现遍历后台内容
- matlab 解非齐次方程组,各位看一下为什么这里的LU解不出非齐次线性方程组?
- python open写入_Python IO操作文件读取和写入、open函数的mode参数、buffering,文件缓冲区...
- 7-43 币值转换 (20分)_「篮球看吧」40岁了!生涯25年!还狂砍33分+联赛得分王,这他么是人吗...
- java的mwcellarray_Java 数组
- api arx autocad_AutoCAD ObjectARX(VC)开发基础与实例教程 此书是利用ObjectARX对AutoCAD二次开发的教程 - 下载 - 搜珍网...
- js读取html元素scr,了解一下JavaScript中的DOM编程
- php的类有全局变量吗_解析在PHP中使用全局变量的几种方法
- mysql 出现 quot_mysql 出现 quot;the table is fullquot;的问题 - tmuffamd - ITeye博客
- 学习笔记(08):MySQL数据库运维与管理-03-用户权限回收