请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并

admin2015-06-27  23

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序的正确输出结果应为:
20
10
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****。
#include
usingnamespacestd;
classCPolygon{
public:
//**********found**********
________//纯虚函数area声明
voidprintarea(void)
//**********found**********
{cout<<________<};
classCRectangle:publicCPolygon{
intwidth;//长方形宽
intheight;//长方形高
public:
CRectangle(intw,inth):width
(w),height(h){}
intarea(void){return(width*
height);}
};
classCTriangle:publicCPolygon{
intlength;//三角形一边长
intheight;//该边上的高
public:
CTriangle(int1,inth):length
(1),height(h){)
//**********found**********
intarea(void){return()/2;}
};
intmain(){
CRectanglerect(4,5);
CTriangletrgl(4,5);
//**********found**********
________*ppoly1,*ppoly2;
ppoly1=&rect;
ppoly2=&trg1;
ppoIy1->printarea();
ppoly2->printarea();
return0;
}

选项

答案(1)virtualintarea(void)=0; (2)area() (3)length,Icheight (4)Cpolygon

解析 (1)主要考查考生对纯虚函数的掌握,在定义纯虚函数时要看在派生类中函数的定义:intarea(void)。由此可知纯虚函数应该为:virtualintarea(void)=0;。
(2)主要考查考生对纯虚函数的掌握情况,由voidprintarea(void)可知,该函数要打印面积,因此在此要调用纯虚函数area,即cont<(3)主要考查考生对数学公式的掌握,该函数要返回三角形面积,三角形的面积公式为长乘以该边上的高除以2,即
return(length*height)/2;。
(4)主要考查考生对抽象类的掌握情况,根据程序段:
ppoly1=&rect;
ppoly2=&trgl;
可知指针ppolyl指向CRectande类,而指针ppoly2指向CTriangle类,因此在这里只能填这两种类的基类CPolygon类。
转载请注明原文地址:https://kaotiyun.com/show/u1BD777K
0

最新回复(0)