问题 单项选择题

有以下程序 #include<iostream>using namespace std; class Complex { public: Complex(double r=O,double i=0):re(r),im(i){} double real() const {return re;} double imag()const {return im;} Complex operator +(Complex C) const {return Complex (re+c.re,im+c.im);} private: double re,im; }; int main() { Complex a=Complex(1,1)+Complex (5); cout<<a.real()<<’’+’’<<a.imag()<<’’i’’<<endl; retum 0; } 程序执行后的输出结果是【 】

A.6+6i

B.6+1i

C.1+6i

D.1+1i

答案

参考答案:B

解析:本题考核类与对象、运算符重载。运算符"+"在类Complex中作为成员函数重载,实现两个对象的数据成员的相加。所以main函数中语句"Complex a=Complex(1,1)+Complex(5);"的作用相当于"Complex a(1+5,1);"即对象a的数据成员re的值为6,imag的值为1,所以输出为6+1i。

多项选择题
填空题