问题 问答题

使用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,然后进行赋值和输出的操作。

单项选择题
单项选择题 A1型题