源程序:
#include<iostream>
using namespace std;
class Complex
{
public:
Complex(){real = 0;imag = 0;}
Complex(double r, double i){real = r; imag =i;}
Complex operator+(Complex &c2);//声明重载运算符"+"
Complex operator-(Complex &c2);//声明重载运算符"-"
Complex operator*(Complex &c2);//声明重载运算符"*"
Complex operator/(Complex &c2);//声明重载运算符"/"
void display();
private:
double real;
double imag;
};
Complex Complex::operator+(Complex &c2)//定义重载运算符"+"
{
Complex c;
c.real = real + c2.real;
c.imag = imag + c2.imag;
return c;
}
Complex Complex::operator-(Complex &c2)//定义重载运算符"-"
{
Complex c;
c.real = real - c2.real;
c.imag = imag - c2.imag;
return c;
}
Complex Complex::operator*(Complex &c2)//定义重载运算符"*"
{
Complex c;
c.real = real * c2.real - imag * c2.imag;
c.imag = imag * c2.real + real * c2.imag;
return c;
}
Complex Complex::operator/(Complex &c2)//定义重载运算符"/"
{
Complex c;
c.real = (real * c2.real + imag * c2.imag) / (c.real * c.real + c.imag * c.imag);
c.imag = (imag * c2.real - real * c2.imag) / (c.real * c.real + c.imag * c.imag);
return c;
}
void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
cout<<"c1=";
c1.display();
cout<<"c2=";
c2.display();
c3=c1+c2;
cout<<"c1+c2=";
c3.display();
c3=c1-c2;
cout<<"c1-c2=";
c3.display();
c3=c1*c2;
cout<<"c1*c2=";
c3.display();
c3=c1/c2;
cout<<"c1/c2=";
c3.display();
system("pause");
return 0;
}
#include<iostream.h>
//using namespace std;
class Complex
{
public:
Complex(){real = 0;imag = 0;}
Complex(double r, double i){real = r; imag =i;}
friend Complex operator+(Complex &c1, Complex &c2);
friend Complex operator-(Complex &c1, Complex &c2);
friend Complex operator*(Complex &c1, Complex &c2);
friend Complex operator/(Complex &c1, Complex &c2);
void display();
private:
double real;
double imag;
};
Complex operator+(Complex &c1, Complex &c2)
{
return Complex(c1.real + c2.real, c1.imag + c2.imag);
}
Complex operator-(Complex &c1, Complex &c2)
{
return Complex(c1.real - c2.real, c1.imag - c2.imag);
}
Complex Complex::operator*(Complex &c2)//定义重载运算符"*"
{
return Complex((real * c2.real - imag * c2.imag), (imag * c2.real + real * c2.imag));
}
Complex Complex::operator/(Complex &c2)//定义重载运算符"/"
{
return Complex( ((real * c2.real + imag * c2.imag) / (c.real * c.real + c.imag * c.imag)),
((imag * c2.real - real * c2.imag) / (c.real * c.real + c.imag * c.imag)));
}
void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
cout<<"c1=";
c1.display();
cout<<"c2=";
c2.display();
c3=c1+c2;
cout<<"c1+c2=";
c3.display();
c3=c1-c2;
cout<<"c1-c2=";
c3.display();
c3=c1*c2;
cout<<"c1*c2=";
c3.display();
c3=c1/c2;
cout<<"c1/c2=";
c3.display();
return 0;
}
#include<iostream.h>
//using namespace std;
class Complex
{
public:
Complex(){real = 0;imag = 0;}
Complex(double r, double i){real = r; imag =i;}
friend Complex operator +(Complex &c, double d);
friend Complex operator -(Complex &c, double d);
friend Complex operator *(Complex &c, double d);
friend Complex operator /(Complex &c, double d);
void display();
private:
double real;
double imag;
};
Complex operator +(Complex &c, double d)
{
return Complex(c.real + d, c.imag);
}
Complex operator -(Complex &c, double d)
{
return Complex(c.real - d, c.imag);
}
Complex operator*(Complex &c, double d)
{
return Complex(d * c.real, d * c.imag);
}
Complex operator/(Complex &c, double d)
{
return Complex(c.real / d, c.imag / d);
}
void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}
int main()
{
Complex c1(4.0, 5.0), c2(2.0, 2.0), c3;
double d = 2.0;
cout << "c1 = ";
c1.display();
cout << "c2 = ";
c2.display();
c3 = c2 + 2;
cout<< "c2 + 2 = ";
c3.display();
c3 = c2 - 2;
cout<< "c2 - 2 = ";
c3.display();
c3 = c2 * 2;
cout<< "c2 * 2 = ";
c3.display();
c3 = c2 / 2;
cout<< "c2 / 2 = ";
c3.display();
return 0;
}
截图:
逸夫木有vs2008.。。。编这个程序时还比较能hold住···原来c++也有bug哈···完成任务的感觉不错~
加油啦~