问答题
使用VC6打开考生文件夹下的工程test32_3。此工程包含一个test32_3.cpp,其中定义了复数类complex,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义复数类complex的私有数据成员real和image,用来分别表示复数的实部和虚部,它们都是double型的数据。请在注释“//**1**”之后添加适当的语句。
(2)添加复数类complex的带一个参数的构造函数,分别将real和image赋值为参数r的值和0.0,请在注释“//**2**”之后添加适当的语句。
(3)完成复数类complex的“+”运算符重载成员函数的定义,两个复数相加是将复数的实部和虚部分别进行相加,请在注释“//**3**”之后添加适当的语句。
(4)完成复数类complex的友元函数isequal(complex *cl,complex *c2)的定义,如果复数c1与c2相等即c1与c2的实部和虚部分别相等,则返回1,否则返回0。请在注释“//**4**”之后添加适当的语句。
程序输出结果如下:
36+0i=36+0i
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test32_3.cpp清单如下:
#include <iostream.h>
class complex
{
//** 1 **
public:
complex(){real=image=O.O;}
complex(double r)
{
//** 2 **
}
complex operator+(const complex &c);
friend bool isequal(complex *c1,complex *c2
void display();
};
complex complex::operator+(const complex &c)
{
//** 3 **
temp.real=real+c.real;
temp.image=image+c.image;
return temp;
}
bool isequal(complex *c1,complex *c2)
{
/ /** 4 **
return 1;
else
return 0;
}
void complex:: display()
{
cout<<real;
if (image>=0) cout<<"+"<<image<<"i";
else if (image<0) cout<<image<<"i";
}
void main()
{
complex c1,c2(36.0);
c1=c1+c2;
c1.display();
if (isequal(&c1,&c2)) cout<<"=";
else coat<<"<>";
c2.display();
cout<<end1;
}
【参考答案】
(1) double real,image; (2) real=r; image=0.0; (3) complex te......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)