使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件test17_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。
(1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**。”之后添加适当的语句。
(2)完成类Text的构造函数Text(char *str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。
(3)定义类CircleWithText的构造函数CircleWithText(int cx,int cy,char *msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。
输出结果如下:
Point:3 4
hello
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test17_3.cpp清单如下:
#include <iostream.h>
#include <string.h>
class Point
int x,y;
public:
//**1**
cout<<"Point:"<<x<<’ ’<<y<<’\n’;
~Point()
;
class Text
char text[100];
public:
Text(char *str)
//**2**
~Text ()
;
class CircleWithText:public Point,public Text
public:
//**3**
~CircleWithText()
;
void main()
CircleWithText cm(3,4,"hello");
参考答案:
(A)
Point(int xA=0,int yA=0):x(xA),y(yA)
(B)
strcpy(text,str);
cout<<str<<"\n";
(C)
CircleWithText(int cx,int cy,char * msg):Point(cx,cy),Text(msg)
解析:
本题主要考查考生对于多继承中类的定义和派生类构造函数的定义的掌握。注意学会使用参数列表的形式定义派生类的构造函数,在列表中的格式是基类名1(向基类传递的参数列表),基类名2(向基类传递的参数列表)。