vc++6.0采用的
改正方法就是用
就ok了。
或者不改动程序,使用支持标准c++的编译器,如VC++.NET(visual studio 2005/2008)
代码如下:
#include
class Complex
{
public:
Complex(float r,float i):real(r),imag(i){}
Complex(){}
float real;
float imag;
friend ostream& operator <<(ostream &,Complex &);
};
Complex operator + (Complex &a,Complex &b)
{
return Complex(a.real+b.real,a.imag+b.imag);
}
ostream& operator <<(ostream &output,Complex &a)
{
output<
output<
}
int main()
{
Complex a(1,0.5),b(3,0.2);
cout< // getchar(); vc6不需要这句话来暂停屏幕,vc.net需要
return 0;
}
C++不会哦,你去找一些专业的C++群去啊,不过现在C++的不多了C#和Java还差不多会有很多人给你解答!
Complex(a.real+b.real,a.imag+b.imag);这个定义了吗,怎么没有找到。
VC++6.0上编译运行正常啊,
运行结果为:
4+0.7i
修改后代码:
#include
using namespace std;
class Complex
{
public:
Complex(float r,float i):real(r),imag(i){}
Complex(){}
float real;
float imag;
friend ostream& operator <<(ostream &,Complex &);
friend ostream& operator <<(ostream &output,Complex &a)
{
output<
output<
}
};
Complex operator + (Complex &a,Complex &b)
{
return Complex(a.real+b.real,a.imag+b.imag);
}
int main()
{
Complex a(1,0.5),b(3,0.2),c;
cout< getchar();
}
我对ostream& operator <<(ostream &output,Complex &a)修改了下就OK了