#include
using namespace std;
class Complex{
public:
friend ostream&operator << (ostream&,Complex&);//声明重载运算符<<
friend istream&operator >> (istream&,Complex&);//声明重载运算符>>
private:
double real;
double imag;
};
ostream& operator <<(ostream& output,Complex &c)//定义重载运算符<<函数
{
output<<"("<
}
istream& operator >函数
{
cout<<"input real part and imaginary part of complex number:"
input>>c.real>>c.imag;
return input;
}
int main()
{
Complex c1,c2;
cin>>c1>>c2;
cout<<"c1="<<c1<<endl;
cout<<"c2="<<c2<<endl;
return 0;
}
vc下提示的错误
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(305) : error C2248: 'real' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(300) : see declaration of 'real'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(305) : error C2248: 'imag' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(301) : see declaration of 'imag'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2146: syntax error : missing ';' before identifier 'input'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2248: 'real' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(300) : see declaration of 'real'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(310) : error C2248: 'imag' : cannot access private member declared in class 'Complex'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(301) : see declaration of 'imag'
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(317) : error C2593: 'operator <<' is ambiguous
C:\Users\Administrator\Desktop\c++\运算符重载\main.cpp(318) : error C2593: 'operator <<' is ambiguous