首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。在main函数中测试得到下面的结
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。在main函数中测试得到下面的结
admin
2019-06-07
49
问题
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。在main函数中测试得到下面的结果:
在CMyShape类构函数造内
在CCircle类构造函数内
在CMyShape类构造函数内
在CRectangle类构造函数内
myCircle:Area=314.159 Girth=62.8319
myRectangle:Area=900 Girth=120
具体要求如下:
(1)定义求面积的纯虚函数,请在注释1后添加适当的语句。
(2)定义求周长的纯虚函数,请在注释2后添加适当的语句。
(3)请在注释3和注释4后添加适当的语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include
#include
#define PI 3.1415926
class CMyPoint
{
public:
int x,y;
CMyPoint(int tx,int ty):x(tx),y(ty){}
};
class CMyShape
{
public:
CMyShape(){cout<<"在CMyShape类构造函数内"
<
//********1********
//********2********
protected:
};
class CCircle:public CMyShape
{
public:
CCircle(CMyPoint i,double j):CMyShape(),arcCenter
(i),radius(j)
{
cout<<"在CCircle类构造函数内"<
}
double GetArea()
{
return PI*radius*radius:
}
double GetGirth()
{
return 2*PI*radius:
}
private:
CMyPoint arcCenter;
double radius;
};
class CRectangle:public CMyShape
{
public:
CRectangle(CMyPoint h,CMyPoint rb):leftTop(It),
rightBottom(rb),CMyShape()
{
cout<<"在CRectangle类构造函数内"<
}
double GetArea()
{
int width=abs(rightBottom.x-leftTop.x);
int height=abs(rightBottom.y-leftTop.y);
return width*height;
}
double GetGirth()
{
int width=abs(rightBottom.x-leftTop.x);
int height=abs(rightBottom.y-leftTop.y);
return 2*(width+height):
}
private:
CMyPoint leftTop,rightBottom;
};
void main()
{
CMyShape*myShape=NULL;
CCircle*myCircle=new CCircle(CMyPoint(5,5),10):
CRectangle*myRectangle=new CRectangle r CMy
Point(0,0),CMyPoint(30,30));
//********2********
cout<<"myCircle:"<<"Area="<
//********2********
cout<<"myReetangle:"<
GetArea()<<"\t”<<"Girth="<
GetGirth
()<
}
选项
答案
(1)应添加“virtual double GetArea()=0;”。 (2)应添加“virtual double GetGirth()=0;”。 (3)应添加“myShape=myCircle;”。 (4)应添加“myShape=myRectangle;”。
解析
本题在第1处声明纯虚函数,纯虚函数的定义格式为“virtual<函数类型><函数名>(<参数表>)=0”,由程序后面的函数体实现可知求面积纯虚函数的函数名称为GetArea,因此第1处应添加“virtual double GetArea()=0;”。声明格式和1)相同,由求周长的函数具体实现可知该函数的名称为GetGirth,因此第2处应添加“virtual double GetGirth()=0;”。
主函数中定义了CMyShaPe类对象指针myShape,CCircle类对象指针myCircle,CRectangle类对象指针myRectangle。由类继承关系知,在调用子类的构造函数时,编译器会自动调用父类的默认构造函数来初始化父类,因此在实例化类CRectangle和类CCircle的实例时,抽象父类CMyShape的默认构造函数会先被调用,因此在屏幕上先输出“在CMyShape类构造函数内”,然后输出“在CCircle类构造函数内”,实例化CRectangle对象的过程也是如此。同时由纯虚函数的性质知.抽象基类不需要实现纯虚函数,它的实现是在子类中完成的,但通过周子类实例隐式转换成基类实例,可以使得基类实例具有子类实例的特性,因此可以访问子类的成员函数,myShape是基类指针,其虚函数GetArea和GetGirth没有实现,要求程序输出的面积值和周长值,只可能是myShape指向子类对象,调用子类的函数GetArea和GetGirth打印输出,显然在第3处是myShape指向子类CCirele对象,即“myShape=myCircle;”。同理第4处myShape指向子类CRectangle对象,即第4处应添加“myShape=myRectangle;”。
转载请注明原文地址:https://kaotiyun.com/show/fm8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为()。A)aB)AA.aC)a{}D)AA::a{}
已知类Myclass的定义如下classMyClass{public:voidfunction1(MyClass&C){cout<<c.data;)staticvoidfunction2(MyClass&C)
下面程序的运行结果是1______和2______。 #include #defineN10 #defines(x)x*x #definef(x)(x*x) voidmain() {inti1,i2; i1
下列关于抽象类的表述中正确的是()。
数据流图中带有箭头的线段表示的是()。
软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于__________测试。
以下描述中,不是线性表顺序存储结构特征的是()。
下面重载乘法运算符的函数原型声明中错误的是()。
假设血inta=1,b=2;,则表达式(++a/b)*b--的值为【】。
在E-R图中,用来表示实体联系的图形是( )。
随机试题
中共八大提出社会主义改造完成以后,我国社会的主要矛盾是无产阶级同资产阶级之间的矛盾。()
某汽车租赁公司有200辆同型号的汽车。每辆车的日租金为100元时可全部租出;当每辆车的日租金增加5元时,未租出的汽车就会多4辆,租出的车每天需要维护费20元。每辆车的日租金为多少时,租赁公司的日收益最大?()
在Excel的A2单元格中输入“=3^2”,然后将其复制到A3单元格,A3单元格中显示的是()
高热量、高脂肪的食品是典型的西方国家的饮食。自1980年以来,中国人越来越多地食用高热量、高脂肪的食品,心脏病和糖尿病的发病率也提高了,但中国人的平均预期寿命却从20世纪80年代初的68岁增长为73岁,而且仍在不断提高。如果以下陈述为真,哪一项最有助于解释
实验中要解决8个问题,每个问题分别配置A、B、C三个容量不同的量杯,要求被试使用它们量出一定量的水。前5个问题均可通过“B减A减2C”得以解决;后3个问题尽管可以采用“A加C”这种更简便的方法,但被试仍沿用“B减A减2C”。该实验体现的影响问题解决的因素是
在收回划拨国有建设用地使用权之时,出现以下()情形时,需要对土地使用权人给予适当补偿。
拆除城市规划区内国有土地上的非公益事业房屋的附属物,其补偿方式是()。
按照《中华人民共和国建筑法》的规定,施工现场安全由( )负责。
Thinkaboutwhatwouldmakeyoureally,reallyhappy.Moremoney?Wrong.Smiling,well-adjustedkids?Wrongagain.Thefactisw
WhatisthepurposeofMrs.Harris’visittotheheadmaster?
最新回复
(
0
)