601c.cpp

来自「C++实训教程」· C++ 代码 · 共 47 行

CPP
47
字号
//	601c.cpp	class C Overload + - 
#include <iostream.h>
#include <math.h>
class C   //Complex
{
   private: float r,i;
   public:
	  C (float rr=0, float ii = 0){r = rr; i = ii;}
	  void Disp () 
	  {
	  		if(i<0) cout << r << i << "i\n";
	  		else   cout << r << "+" << i << "i\n";
	  }
	  C operator+ (C& obj)
	  {	return C(r + obj.r, i + obj.i);  }
	  C operator- (C& obj)
	  { 	return C(r - obj.r, i - obj.i);  }
	  C operator* (C& obj)   { return C(r * obj.r - i * obj.i,r * obj.i + i * obj.r);}
	  C operator/ (C& obj)
	  {
	  		float modulus = obj.r * obj.r + obj.i * obj.i;
	  		float newReal = i * obj.i + r * obj.r;
	  		float newImag = i * obj.r - r * obj.i;
	  		return C(newReal / modulus, newImag / modulus);
	  }
};
main(void)
{
	C c1 (10.0,10.0);
	C c2 (-20.0,-20.0);
	C c3;
	c3 = c1 + c2;
	cout <<"c1 + c2 ->"; c3.Disp();
	c3 = c1 - c2;
	cout <<"c1 - c2 ->";  c3.Disp();
	c3 = c1 * c2;
	cout <<"c1 * c2 ->";  c3.Disp();
	c3 = c1 / c2;
	cout <<"c1 / c2 ->";  c3.Disp();
	return 0;
}
/*
c1 + c2 ->-10-10i
c1 - c2 ->30+30i
c1 * c2 ->0-400i
c1 / c2 ->-0.5+0i
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?