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

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

 

 

用C++的操作符重载实现了复数的加乘。。。

#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; // 返回相加得到的复数
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值