单选题
有如下程序:
#include<iostream>
using namespace std;
class Complex
{
double re, im;
public:
Complex(double r, double i):re(r), im(i){}
double real()const{return re;}
double image()const{return im;}
Complex& operator+=(Complex a)
{
re+=a.re;
im+=a.im;
return *this;
}
};
ostream& operator<<(ostream& s, const
Complex& z)
{
return s<<"("<<z.real()<<", "<<z.image()<<")";
}
int main()
{
Complex x(1, -2), y(2, 3);
cout<<(x+=y)<<endl;
return 0;
}
执行这个程序的输出结果是______。
【正确答案】
D
【答案解析】[解析] “+=”在复数类中被重载,变成实部和虚部分别相加,并用结果修改类中的成员实部和虚部。故x+=y的结果为(3, 1)。而“<<”被重载,输出格式符合复数的坐标形式。