文章目录

  • 一、 复数的运算
  • 二、利用重载运算符+来实现复数的加法运算

一、 复数的运算

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++复数的运算、运算符重载相关推荐

  1. 4-1 复数类的运算符重载

    4-1 复数类的运算符重载 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 通过本题目的练习 ...

  2. +、-、*、/复数与整数运算符重载

    7-8 +.-.*./运算符重载 (10 分) 编写程序实现+ - * / 运算符重载,主要功能如下: 1.实现两复数(c1与c2)的加减乘除运算 2.实现复数c1与整数num的加减乘除运算 3.实现 ...

  3. 复数中的运算符重载(续)

    问题及代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:李盈盈 * 完成日期:20 ...

  4. C++编程练习:计算长方体体积、对象数组求学生成绩最高者、销售应用问题、重载复数加法运算

    目录 一.需要求3个长方体的体积,请编一个基于对象的程序.数据成员包括length(长).width(宽).height(高).要求同成员函数实现以下功能. 二.建立一个对象数组,内放5个学生的数据( ...

  5. c++友元函数及运算符重载

     c++的类和java的类机制着实不大一样,不仅仅是语法,还包括一些特殊的东西,如c++用友元函数来破坏类的封装性,使得外界(友元函数体)可以访问类的私有属性,而java呢,java则可以通过反射机制 ...

  6. 【C++实验】运算符重载(两个矩阵相加)

    运算符重载 运算符重载概念 对已有的运算符赋予新的含义,用一个运算符表示不同功能的运算,从而适用于用户自定义类型的数据(比如复数.矩阵等)之间的运算 运算符重载方法 定义一个重载运算符函数,在需要时系 ...

  7. 定义复数类Complex,重载运算符“+”,使之用于复数的加法运算

    定义复数类Complex,重载运算符"+",使之用于复数的加法运算.将运算符函数重载为非成员.非友元的普通函数. C++代码实现: #include<iostream> ...

  8. 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 ...

  9. [YTU]_2535( C++复数运算符重载(+与))

    题目描述 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算与输出操作. (1)参加运算的两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意.例如,c ...

最新文章

  1. react项目启动invalid host header问题
  2. tableview 的小 点点,
  3. 遗忘root用户的密码
  4. BroadcastReceiver应用详解(转)
  5. javascript -- 事件--事件流-- 冒泡 --捕获
  6. ios弧形进度条_iOS实现一个颜色渐变的弧形进度条
  7. 很感谢你能来,不遗憾你离开(好文章)
  8. STL sort 函数实现详解 ZZ
  9. ansys与solidworks关联失败,将SolidWorks模型导入ansys划分网格总是提示错误
  10. layui自定义表单验证无效
  11. html 图片 透明颜色,CSS实现图片变灰色及透明度
  12. 提高电脑运行速度WIN7
  13. Android ANR原理代码分析(三)
  14. 论文笔记: 多标签学习 PML-NI 算法
  15. 苹果计算机密码bug,苹果iOS 13系统新BUG:快速输入密码,解锁无效
  16. 只要五分钟,让你成功接入Twitter的第三方登录
  17. android apk编译打包过程
  18. 在Power BI中用DAX新建列的方式进行累计求和
  19. 一文告诉你CXL是什么,有什么新的机会 (上)
  20. R中时间序列分析-趋势分析Trend

热门文章

  1. C标签加EL表达式在jsp页面实现遍历后台内容
  2. matlab 解非齐次方程组,各位看一下为什么这里的LU解不出非齐次线性方程组?
  3. python open写入_Python IO操作文件读取和写入、open函数的mode参数、buffering,文件缓冲区...
  4. 7-43 币值转换 (20分)_「篮球看吧」40岁了!生涯25年!还狂砍33分+联赛得分王,这他么是人吗...
  5. java的mwcellarray_Java 数组
  6. api arx autocad_AutoCAD ObjectARX(VC)开发基础与实例教程 此书是利用ObjectARX对AutoCAD二次开发的教程 - 下载 - 搜珍网...
  7. js读取html元素scr,了解一下JavaScript中的DOM编程
  8. php的类有全局变量吗_解析在PHP中使用全局变量的几种方法
  9. mysql 出现 quot_mysql 出现 quot;the table is fullquot;的问题 - tmuffamd - ITeye博客
  10. 学习笔记(08):MySQL数据库运维与管理-03-用户权限回收