问题
单项选择题
有下列程序: #include<iostream> using namespace std; class Complex { double re,im; public: Complex(double r,double i):re(r),im(i){} double real()const{retum 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.image0<<’)’; } int main() { Complex x(1,2),y(2,3); cout<<(x+=y)<<endl; return 0; } 执行这个程序的输出结果是( )。
A.(1,-2)
B.(2,3)
C.(3,5)
D.(3,1)
答案
参考答案:C
解析:
此题考查的是“+”运算符的重载。重载后的“+”运算符的功能是对参数的两部分分别进行加法运算,然后返回复数值。所以x+=y使得对象x(1,2)与y(2,3)的re和im分别相加,最后输出结果(3,5)。