问题 问答题

使用VC6打开考生文件夹下的工程MyProj13。此工程包含一个源程序文件MyMain12.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。
请按要求完成下列操作,将类的定义补充完成:
①定义类shapes的保护成员x和y,它们都是整型变量。请在注释“//* *1* *”之后添加适当的语句。
②完成构造函数shapes(int d,int w)定义,使类shapes的保护成员x、y分别初始化为d、w,并分别具有默认值0、0。请在注释“//* *2* *”之后添加适当的语句。
③完成类shapes的成员函数setvalue(int d,int w)的定义,shapes类的数据成员x和y分别被设置成d和w。请在注释“//* *3* *”之后添加适当的语句。
④将类shapes的成员函数void disp()设置成纯虚函数。请在注释“//* *4* *”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain13.cpp清单如下:
//MyMain13.cpp
#include<iostream>
using namespace std;
class shapes

//* * * 1 * * *
public:
//* * * 2 * * *
void setvalue(int d,int w)

//* * * 3 * * *

//* * * 4 * * *

class square : public Shapes

public:
void disp()

cout<<x*y<<end1;

;
int main()

shapes*ptr;
square s1;
ptr=&s1;
ptr->setvalue(10,5);
ptr->disp();
return 0;

答案

参考答案:

①protected:int x,y;

②shapes(int d=0,int w=0) {x=d;y=w;}

③x=d;y=w;

④virtual void disp()=0;

解析:

本题中基类shapes是一个抽象类(拥有纯虚函数disp()),其构造函数中要设置默认参数值0。并且在类体中要将成员函数disp()声明成纯虚函数。在主函数中定义了抽象类的对象指针ptr,并给它赋值派生类square的对象s1,然后进行赋值和输出的操作。

单项选择题
多项选择题