Complex 类

#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)一直报错。

后来只好把代码改成现在的这样就通过了。

但我就想知道为什么一开始那个错误的不行。

猜你喜欢

转载自www.cnblogs.com/jiyuanxiangzhouziying/p/10630503.html