虚数类出错?请教大虾!谢谢!
#include "stdafx.h"
#include <iostream.h>
class complex{
public:
complex(double r, double i) {real = r; imaginary = i;}
void operator+(complex c);
void operator-(complex c);
void operator*(complex c);
friend void operator+(complex c1, complex c2);
friend void operator-(complex c1, complex c2);
friend void operator*(complex c1, complex c2);
friend void print(complex c);
private:
double real, imaginary;
};
void operator+(complex c1, complex c2)
{
c1.real = c1.real + c2.real;
c1.imaginary = c1.imaginary + c2.imaginary;
return;
}
void complex::operator*(complex c)
{
real = real * c.real + imaginary * c.imaginary*(-1);
imaginary = real * c.imaginary + imaginary * c.real;
return;
}
void print(complex c)
{
cout<<c.real<<'+'<<c.imaginary<<'i'
<<'\n';
}
int main(int argc, char* argv[])
{
double real1,imaginary1,real2,imaginary2;
cout<<"请输入复数(如:1+2i):"<<endl;
//for (int i=1;i<3;i++) {
cout<<"请输入实部:"<<endl;
cin>>real1>>real2;
cout<<"请输入虚部:"<<endl;
cin>>imaginary1>>imaginary2;
//}
complex a(real1,imaginary1),b(20,20),c(real2, imaginary2);
a=b+c; //在这里报错:'operator +' is ambiguous
print(a); print(b); print(c);
return 0;
}