问题 单项选择题

有以下程序#include <iostream>using namespace std;class Complex{public: Complex (double r=0, 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);}privane: double re,im; }; int main { Complex a =Complex(1,1)+Complex(5); cout<<a.real()<<’+’<<a.imag() << ’i’ <<endl return 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。

操作题
问答题