成员运算符重载的问题
编这样一个程序:定义一个复数类,完成两复数实部与实
部相加,虚部与虚相加功能。目的是练习运算符函数。
#include<iostream.h>
class complex
{
private:
double real;
double imag;
public:
complex(double r=0,double i=0);
void print();
complex operator+(complex c); //重载了+的运算符函数
};
complex::complex(double r,double i)
{
real=r;
imag=i;
}
void complex::print()
{
cout<<real;
if(imag>0)
cout<<"+";
if(imag!=0)
cout<<imag<<"i"<<endl;
};
complex complex::operator +(complex c) //前面为什么还要加上一个"complex"
{
complex temp;
temp.real=real+c.real;
temp.imag=imag+c.imag;
return temp;
}
main()
{
complex ob1(3,9),ob2(4,6),ob3;
ob3=ob1+ob2;
ob3.print();
return 0;
}
我想问的是:重载运算符+函数,在类外定义时,前面的第一个complex是什么意思
它既然属于成员函数,只须缀上类名即可,为什么要缀上两个类名