1、对C++的运算符重载不太熟悉,所以相关复数运算操作是通过定义静态函数来操作;
2、C++的类变量貌似和java定义类变量机制不一样,PI只能用宏来定义了。
复数类:
1 #pragma once# 2 #include <math.h> 3 class CComplex/*复数运算类*/ 4 { 5 private: 6 double m_real; /*实部*/ 7 double m_img ; /*虚部*/ 8 9 public: 10 /*构造函数和析构函数*/ 11 CComplex(); 12 CComplex(CComplex &c); 13 CComplex(double real, double img); 14 ~CComplex(); 15 /* setters & getters */ 16 void setReal ( double value ); 17 double getReal ( ); 18 void setImg ( double value ); 19 double getImg ( ); 20 21 /*加法*/ 22 static void add(CComplex &c1 ,CComplex &c2 ,CComplex &c3) 23 { 24 double _real = c1.getReal() + c2.getReal(); 25 double _img = c1.getImg() + c2.getImg(); 26 c3.setReal(_real); 27 c3.setImg(_img); 28 } 29 30 /*减法*/ 31 static void minus(CComplex &c1, CComplex &c2, CComplex &c3) 32 { 33 double _real = c1.getReal() - c2.getReal(); 34 double _img = c1.getImg() - c2.getImg(); 35 c3.setReal(_real); 36 c3.setImg(_img); 37 } 38 39 /*乘法*/ 40 static void multi(CComplex &c1, CComplex &c2, CComplex &c3) 41 { 42 43 double a = c1.getReal(); 44 double b = c1.getImg(); 45 double c = c2.getReal(); 46 double d = c2.getImg(); 47 48 double _real = a * c - b * d; 49 double _img = a * d + b * c; 50 c3.setReal(_real); 51 c3.setImg(_img); 52 } 53 54 double getModulus (); //模长计算 55 double getAngle (); //幅角计算 56 };