首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,要求编写一个CMyShape类,含有求面积求周长等纯虚函数。然后编写一个CMyRectangle类和CMyCircle类继承CMyShape,并实现求面积、求周长的两个函数。在main()i~数中测
使用VC6打开考生文件夹下的源程序文件modi3.cpp,要求编写一个CMyShape类,含有求面积求周长等纯虚函数。然后编写一个CMyRectangle类和CMyCircle类继承CMyShape,并实现求面积、求周长的两个函数。在main()i~数中测
admin
2017-09-20
68
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp,要求编写一个CMyShape类,含有求面积求周长等纯虚函数。然后编写一个CMyRectangle类和CMyCircle类继承CMyShape,并实现求面积、求周长的两个函数。在main()i~数中测试得到下面的结果:
在CMyShape类构函数造内
在CMyCircle类构造函数内
在CMyShape类构造函数内
在CMyRectangle类构造函数内
myCircle:Area=3 14.1 59 Girth=62.83 19
myRectangle:Area==900 Girth==120
具体要求如下:
(1)定义求面积纯虚函数,请在注释∥********1********之处添加适当的语句。
(2)定义求周长纯虚函数,请在注释∥********2********之处添加适当的语句。
(3)请在注释∥********3********和∥********4********之处添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
#define PI 3.1415926
clas S CMyPoint
{
public:
int x,y;
CMyPoint(int tx,int ty):
X(tx),Y(ty)f}
};
class CMyShape
{
public:
CMyShape(){cout<<“在CMyShape类构造函数内”<
∥********1********
∥********2********
protected:
};
class CMyCircle:public CmyShape
{
public:
CMyCircle(CMyPoint i,double
j):CMyShape(),arcCenter(i),
radius(j){
cout<<“在CMyCircle类构造函数内”<
}
double GetArea()
{
return PI*radius*radius ;
}
double GetGirth()
{
return 2*PI*radius;
}
private:
CMyPoint arcCenter;
double radius;
};
class CMyRectangle:public
CmyShape
{
public:
CMyRectangle(CMyPoint
it,CMyPoint rb):leftTop(it),
rightBottom(rb),CMyShape(){
cout<<“在CMyRectangle类构造函数内”<
}
Double GetArea()
{
Int width=abS
(rightBottom.x—leftTop.x);
int height=abs
(rightBottom.y—leftTop.y);
Return width*height;
}
double GetGirth()
{
int width=abS
(rightB0ttom.X—leftTop.x);
int height=abs
(rightBottom.y—leftTop.y);
return 2*(width+height);
}
private:
CMyPoint leftTop,rightBottom;
};
void main()
{
CMyShape *myShape=NULL;
CMyCircle *myCircle=new
CMyCircle(CMyPoint(5,5),10);
CMyRectangle*myRectangle=
new CMyRectangle(CMyPoint(0,0),CMyPoint(30,30));
∥********3********
cout<<“myCi rcle:”<<“Area=”
<
GetArea()<<“\t”
<<“Girth=”<
GetGirth()<
∥********4********
cout<<”myRectangle:”<<”Are a=“<
GetArea()<<“\t,,
<<“Girth=”<
GetGirth()<
}
选项
答案
(1)添加语句:virtual double GetArea()=0; (2)添加语句:virtual double GetGirth()=0; (3)添加语句:myshape=mycircle; (4)添加语句:myshape=myRectanqle;
解析
类CMyPoint含有成员变量x和y,抽象基类CMyShape含有两个虚函数GetArea0和GetGirth0,分别用来求图形的面积和周长。类CMyRectangle和类CMyCircle派生于类CMyShape,并都实现了抽象父类的纯虚函数,通过这两个函数可分别求得矩形的面积和周长以及圆的面积和周长。
转载请注明原文地址:https://kaotiyun.com/show/pUAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
假定一个二维数组的定义为"int a[3][5];”,则该数组所含元素的个数为15,所占的存储空间的字节数为【 】。
如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。classmyClass{private:intdata;public:myClass(in
下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈项元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。template<classT>classTs
若有函数fun(x,y),并且已经使函数指针变量p指向函数fun,则使用p调用函数fun的方法是______。
有如下类声明;classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);}
下列关于成员函数特征的描述中,错误的是()。
将x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为()。
有如下的类模板定义:template<typenameTYPE>classMyClass{TYPEn;public:MyClass(TYPEk);};其中构造函数MyClass用的值初始化
随机试题
LT公司是一家家用电器生产企业,全部产品均使用LT品牌进行销售,该公司采用的品牌名称策略是()
A.太溪B.照海C.昆仑D.申脉E.后溪位于外踝直下方凹陷中的腧穴是
在宣传销售基金产品阶段,基金从业人员应当做到()。
高峰体验是自我完善过程中的一种自我奖赏,类似宗教皈依时刻的神秘体验。尽管它产生时的刺激因素各不相同,主观体验却彼此相似。它的特征是瞬间产生,转眼而逝,因而往往逃过人们的注意,使人们弄不清它的性质,但这样的时刻到来时能产生强大的冲击波,使人摆脱一切怀疑、恐惧
罗西尼比较著名的歌剧有《湖上夫人》,1812年秋在米兰斯卡拉歌剧院首演的是________。
习近平总书记在中共中央政治局第七次集体学习时指出,无论搞革命、搞建设、搞改革,()问题都是最根本的问题。
甜菜的上部叶片垂直生长,叶簇呈漏斗形。这种生长方式所形成的叶面空间的配制结构,极有利于光照的吸收,提高植株和群体的光合效率。而车前草的叶片是轮生的,叶片夹角为137.5度,这正是圆的黄金分割的弦角,叶片按这个角度生长,可以充分利用光照。梨树随着树干长高,叶
(2009年上半年)在项目进度控制中,(28)不适合用于缩短活动工期。
DavidCameronhasnoticedthathealthandsafetyregulationsstopschoolstakingchildrenoutonfieldtrips,outdooractivitie
A、Shedoesnotwanttobuyanyshirts.B、Shedoesnotliketheshirt.C、Shewantstoseeasmallershirt.D、Shewantstobuythe
最新回复
(
0
)