问答题

使用VC6打开考生文件夹下的工程test38_3。此工程包含一个test38_3.cpp,其中定义了类complex,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)添加类complex的无参数的构造函数的定义,将私有成员real和imag都初始化为0。请在注释“//**1**”之后添加适当的语句。 (2)添加类complex的带两个参数的重载构造函数,两个参数r和i都是double类型,要求将r赋值给私有成员real, i赋值给私有成员imag,同时允许调用时参数i可是省略,请在注释“//**2**”之后添加适当的语句。 (3)完成类complex重载加法函数的定义,该函数直接返回一个类complex的对象,同时把参数对象c的实部real和虚部imag分别与当前对象对应部分分别相加,请在注释“//**3**”之后添加适当的语句。 (4)完成类complex的友元函数print的定义,使其以格式“real+imagi”输出,请在注释“//**4**”之后添加适当的语句。 源程序文件test38_3.cpp清单如下; #include <iostream.h> class complex { public: // ** 1 ** // ** 2 ** { real=r;imag=i; } complex operator+(complex & c); friend void print(complex &c); private: double real,imag; }; complex complex::operator+(complex & c) { // ** 3 ** } // ** 4 ** cout<<c.real<<"+"<<c.imag<<"i"<<endl; } void main( ) { complex c1(2.0,3.0),c2(4.0,-2.0),c3; c3=c1+c2; print(c3); c3=c3+complex(3.5); print(c3); }

【参考答案】

(1) complex( ) {real=imag=0; } (2) complex(double r, doubl......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题