单选题 有如下程序:
#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)<
return 0;
}
执行这个程序的输出结果是______。
【正确答案】 D
【答案解析】[解析] “+=”在复数类中被重载,变成实部和虚部分别相加,并用结果修改类中成员的实部和虚部,x+=y的结果为(3,1),<<被重载,输出格式符合复数的坐标形式。故正确答案是D。