关闭

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

标签: 重载
375人阅读 评论(0) 收藏 举报
分类:
#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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43895次
    • 积分:1329
    • 等级:
    • 排名:千里之外
    • 原创:94篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条