先实现一个复数类并重载运算符,却发生了一堆bug
乘法的时候结果是(15,0),虚部错误
用cout调试
发现有两个重载类型,他却选了参数是复数类的那种
why???
answer:第二个使用的是引用传参的方式,传递的是地址。我猜测这样两个重载函数的入口都是一个地址,不知怎么就选择了第一个,然后就出现了bug
解决方法:把&去掉
complex operator *(double x)
{
return complex(this->real*x,this->imag*x);
}
complex operator *(const complex &x)
{
cout<<"tranfered";
return complex(this->real*x.re(),this->imag*x.im());
}