#include<iostream> #include<math.h> using namespace std; class Complex { public: Complex(double a, double b); Complex(double a) { real = a; i = 0; } Complex(Complex&p); void add(Complex a); void show(); double mod(); private: double real; double i; }; Complex::Complex(double a, double b) { real = a; i = b; } Complex::Complex(Complex&p) { real = p.real; i = p.i; } void Complex::add(Complex a) { real = real + a.real; i = i + a.i; } void Complex::show() { cout << real << ‘+‘ << i << ‘i‘ << endl; } double Complex::mod() { double a; a = sqrt(real*real + i * i); return a; } int main() { Complex c1(3, 5); Complex c2(4.5); Complex c3(c1); c1.add(c2); c1.show(); cout << c1.mod()<<endl; system("pause"); return 0; }
课堂上写的大体上差不多。就是漏了一个求模函数。
宿舍里写的是时候一开始很顺但是到最后的时候就出问题了。一开始我的默认构造函数是这样的
Complex(double a,double b=0) { real=a; i=b; }
但是Complex c2(4.5)一直报错。
后来只好把代码改成现在的这样就通过了。
但我就想知道为什么一开始那个错误的不行。
原文地址:https://www.cnblogs.com/jiyuanxiangzhouziying/p/10630503.html
时间: 2024-11-13 06:44:52