复数类complex的定义、实现(求模、复数加法)
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 5 class complex{ 6 public: 7 complex(double x=0,double y=0); //注意要有默认形参值 8 complex(complex &p); 9 void add(complex z); 10 double mod(); 11 void show(); 12 private: 13 double real,imag; 14 }; 15 16 int main() 17 {complex c1(3,5); //用复数3+5i初始化c1 18 complex c2(4.5); //用实数4.5初始化c1 19 complex c3=c1; //用c1初始化c3 或者写成complex c3(c1); 20 c1.add(c2); //将c1和c2相加,结果保存在c1中 21 c1.show(); //将c1输出 22 cout<<"|c1|="<<c1.mod()<<endl; //输出c1的模 23 cout<<"|c3|="<<c3.mod(); //输出c3的模 24 return 0; 25 } 26 27 complex::complex(double x,double y):real(x),imag(y){ //构造函数 28 } 29 30 complex::complex(complex &p):real(p.real),imag(p.imag){ //复制构造函数 31 } 32 33 void complex::add(complex z){ //复数相加 34 real=real+z.real; 35 imag=imag+z.imag; 36 } 37 38 double complex::mod(){ //复数求模 39 return sqrt(real*real+imag*imag); 40 } 41 42 void complex::show(){ //输出复数 43 cout<<real<<"+"<<imag<<"i"<<endl; 44 }
运行结果:
实验小结:
这次的编程让我对类的定义,实现以及构造函数和复制构造函数的使用规则有了更好的理解。
原文:https://www.cnblogs.com/jyf13/p/10628155.html