# 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++操作符重载实现复数加乘 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)