用成员运算符重载函数进行复数运算

原创 2015年07月07日 20:33:37
#include<iostream>
using namespace std;


class Complex  //声明复数类Complex
{
public:
	Complex(double r=0.0,double i=0.0);//声明构造函数
	void display();//显示输出复数
	Complex operator+(Complex& c);//声明用成员函数重载运算符“+”
    Complex operator-(Complex& c);//声明用成员函数重载运算符“-”
    Complex operator*(Complex& c);//声明用成员函数重载运算符“*”
    Complex operator/Complex& c);//声明用成员函数重载运算符“/”
private:
	double real;//复数的实数部分
	double imag;//复数的虚数部分
};
Complex::Complex(double r,double i)//定义构造函数
{
	real=r;
	imag=i;
}
Complex Complex::operator+(Complex& c)//重载运算符“+”的实现
{
	Complex temp;
	temp.real=real+c.real;
	temp.imag=imag+c.imag;
	return temp;
}
Complex Complex::operator-(Complex& c)//重载运算符“-”的实现
{
	Complex temp;
	temp.real=real-c.real;
	temp.imag=imag-c.imag;
	return temp;
}
Complex Complex::operator*(Complex& c)//重载运算符“*”的实现
{
	Complex temp;
	temp.real=real*c.real-imag*c.imag;
	temp.imag=real*c.imag+imag*c.real;
	return temp;
}
Complex Complex::operator/(Complex& c)//重载运算符“/”的实现
{
	Complex temp;
	double t;
	t=1/(c.real*c.real+c.imag*c.imag);
	temp.real=(real*c.real+imag*c.imag)*t;
	temp.imag=(c.real*imag-real*c.imag)*t;
	return temp;
}
void Complex::display()//显示复数的实数部分和虚数部分
{
	cout<<real;
	if(imag>0)
	{
		cout<<"+";
	}
	if(imag!=0)
	{
		cout<<imag<<"i\n";
	}
}
int main()
{
	Complex A1(2.3,4.6),A2(3.6,2.8),A3,A4,A5,A6;//定义六个复数类对象
	A3=A1+A2;
	A4=A1-A2;
	A5=A1*A2;
	A6=A1/A2;
	A1.display();
        A2.display();
        A3.display();
        A4.display();
        A5.display();
        A6.display();
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

C++提供了运算符重载,极大地方便了自定义类型之间的运算, 本文就最简单的复数运算实现让初学者体会运算符重载的作用以及运算符重载的原理。...
  • Raito__
  • Raito__
  • 2015年07月19日 09:07
  • 3161

C++实践参考——复数类中的运算符重载

返回:贺老师课程教学链接【项目1-实现复数类中的运算符重载】(1)请用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除class Complex { public: ...
  • sxhelijian
  • sxhelijian
  • 2015年04月21日 18:33
  • 2602

用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月1...
  • guohui5011
  • guohui5011
  • 2016年05月19日 18:14
  • 2246

使用运算符重载实现复数的四则运算

程序代码: #include using namespace std; class Complex { public: Complex( )//定义默认构造函数初始化复数 ...
  • u010105970
  • u010105970
  • 2014年06月11日 08:33
  • 1270

运算符重载——重载+和-对复数类对象进行加减运算

1.题目: Problem Description 定义一个复数类,该类包含两个double型的数据成员代表复数的实部和虚部,包含构造函数(默认值为0,0),和显示函数,现重载运算符+和-,使其能对...
  • u010102829
  • u010102829
  • 2013年06月09日 13:14
  • 1128

浅谈C++中用友元函数的方法实现复合运算符(+=等)的重载方法

在写到重载复合运算符的题目时,用成员函数的方法比较容易实现。但是题目中还要求使用友元函数的方法实现,于是就卡在这里了。调试了数次后未果,于是上网翻阅资料,发现网上关于使用友元函数的方法实现复合运算符的...
  • toky2012
  • toky2012
  • 2014年11月25日 19:25
  • 903

第十二周项目1-实现复数类中的运算符重载(1.3实现复数与实数相加减乘除)

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:...
  • angeljing521
  • angeljing521
  • 2016年05月12日 18:14
  • 1081

C++实现输入输出运算符重载、友元函数和成员函数实现复数类Complex

题目要求如下: 1) 基本的构造函数; 2) 成员运算符+、-实现复数的加减运算; 3) 友元运算符+、-实现更合理的加减运算; 4) 运算符实现复数类的输出输入。...
  • rl529014
  • rl529014
  • 2015年11月29日 20:48
  • 3359

用类的友元函数,而不是成员函数定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年5月23日 *版...
  • guohui5011
  • guohui5011
  • 2016年05月23日 22:44
  • 1162

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

/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved * 文件名称:score.cpp * 作 者:...
  • ydzhaolan
  • ydzhaolan
  • 2013年04月19日 11:14
  • 3418
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用成员运算符重载函数进行复数运算
举报原因:
原因补充:

(最多只允许输入30个字)