# C++操作符重载实现复数加乘

http://blog.pfan.cn/fengfei/17867.html

#include "iostream.h"

class Complex // 声明复数类
{
private:
double real; // 实部
double image; // 虚部
public:
Complex ( double r, double i ); // 初始化
~Complex( void );    // 销毁
void   setReal ( double r ); // 设置实数
void   setImage( double i ); // 设置虚数
double getReal ( void );  // 获得实数
double getImage( void );  // 获得虚数
void   displayComplex( void ); // 显示实数
const  Complex operator +( Complex C );  // 复数相加
const  Complex operator *( Complex &C ); // 复数相乘
};

int main( void )
{
Complex c1( 2, 3 ), c2( 0, 1 ), c3( 2, -1 ), c4( 0, 0 );

c1.displayComplex( );
cout << endl;
c2.displayComplex( );
cout << endl;
c3.displayComplex( );
cout << endl;
c4.displayComplex( );
cout << endl;

c4 = c1 + c2;
cout << "相加后: " << endl;
c4.displayComplex( );
cout << endl;

c4 = c1 * c3;
cout << "相乘后: " << endl;
c4.displayComplex( );
cout << endl;

return 0;
}

/* 定义复数类 */
/* 初始化复数 */
Complex::Complex( double r, double i )
{
real = r;
image = i;
}

Complex::~Complex( void )
{
return;
}

void Complex::setReal( double r )
{
this->real = r;
}

void Complex::setImage( double i )
{
this->image = i;
}

double Complex::getReal( void )
{
return this->real;
}

double Complex::getImage( void )
{
return this->image;
}

/* 显示复数 */
void Complex::displayComplex( void )
{
cout << "复数为: " << endl;
if ( real == 0 )
{
cout << image << endl;
}
else
{
cout << real << "*i";
if ( image == 0 )
{
return;
}
else if ( image > 0 )
{
cout << " + " << image << endl;
}
else
{
cout << " - " << -image << endl;
}
}

}

/* 复数相加 */
const Complex Complex::operator +( Complex C )
{
Complex RC( 0, 0 );

RC.setReal ( this->real  + C.getReal( ) );  // 设置相加后的实数
RC.setImage( this->image + C.getImage( ) );  // 设置相加后的虚数

return RC; // 返回相加得到的复数
}

/* 复数相乘 */
const Complex Complex::operator *( Complex &C )
{
Complex RC( 0, 0 );

RC.setReal ( this->real * C.getImage( ) + this->image * C.getReal( ) );  // 设置相乘后的实数
RC.setImage( this->real * C.getReal( )  + this->image * C.getImage( ) ); // 设置相乘后的虚数

return RC; // 返回相加得到的复数
}

#### 复数的C#语言，操作符的重载

2010年04月19日 34KB 下载

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

2015-04-21 18:33:12

#### 运算符的重载（复数的加减）

2016-06-07 15:16:43

#### 实现复数类中的加运算符重载【C++运算符重载】

2015-06-30 18:50:55

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

2017-11-16 20:08:42

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

2013-04-19 11:14:00

#### 【C++】复数的运算符重载

2015-06-07 00:58:36

#### 复数类--重载运算符+

2014-06-03 17:54:33

#### 通过重载输入和输出运算符实现复数的输入和输出

2014-06-16 17:45:05

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

2015-07-19 09:07:22