您的位置:首页 > 其它

复数类的实现

2016-07-04 16:31 393 查看
#include <iostream>
using namespace std;

//5+2i
class complex
{
public:
complex(int real = 0,int image = 0)
:_real(real)
,_image(image)
{

}

complex operator+(const complex& c)
{
complex tmp;
tmp._real  = this->_real + c._real ;
tmp._image  = this->_image + c._image ;
return tmp;

}

complex& operator++()
{

this->_real = this->_real +this->_real ;
this->_image += this->_image ;
return *this;

}

complex& operator+=(const complex& c)
{

this->_real = this->_real +c._real ;
this->_image += c._image  ;
return *this;

}

complex operator*(const complex& c)
{
complex tmp;
tmp._real = this->_real * c._real - this->_image * c._image;
tmp._image = this->_image * c._real + this->_real * c._image;
return tmp;

}

complex operator-(const complex& c)
{
complex tmp;
tmp._real  = this->_real - c._real ;
tmp._image  = this->_image - c._image ;
return tmp;

}

complex operator/(const complex& c)
{
complex tmp;
tmp._real = (this->_real * c._real + this->_image * c._image)/  (c._real * c._real +c._image * c._image);
tmp._image = (this->_image * c._real - this->_real * c._image)/  (c._real * c._real +c._image * c._image);
return tmp;

}

void printf()
{
cout<<"复数:"<<this->_real <<"+"<<this->_image <<"i"<<endl;
}

~complex()
{}
private:
int _real;
int _image;

};
int main()
{
complex c1(78,2);
complex c2(2,3);
c1.printf ();
c2.printf ();
complex tmp;

cout<<"+:"<<endl;
tmp = c1+ c2;
tmp.printf ();

cout<<"-:"<<endl;
tmp = c1 - c2;
tmp.printf ();

cout<<"*:"<<endl;
tmp = c1 * c2;
tmp.printf ();

cout<<"/:"<<endl;
tmp = c1 / c2;
tmp.printf ();

cout<<"++:"<<endl;
c1++;
c1.printf ();

cout<<"+=:"<<endl;
c1 += c2;
c1.printf ();
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: