首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
admin
2012-01-13
70
问题
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。
[说明]
已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Box表示矩形,Ellipse表示椭圆,Circle表示圆(即特殊的椭圆),Line表示线条。
下面的C++代码用于实现图5-1所给出的设计思路,将其空缺处填充完整并编译运行,输出结果为:
Ellipse
Circle
Ellipse
C
E
[C++代码]
#include<string>
#include<iostream>
using namespace Std;
class Shape{
public:
Shape(const String& name){
m_name=name;
}
~Shape(){}
(1) void paint()=0;
string getName()const{
return m_name;
}
private:
string m_name;
};
//Box和Line类的定义与Ellipse类似,其代码略
class Ellipse (2) {
public:
Ellipse(const String& name): Shape(name){cout<<"E1lipse"<<end1;}
void paint() { cout<<getName()<<end1; }
};
class Circle (3) {
public:
Circle(const string& name): Ellipse(name)(cout<<"Circle"<<end1;}
};
class Diagram{
public:
void drawAShap(Shape* shape){ shape->paint();}
void drawShapeS(){
shapes[0]=new Circle("C");
shapes[1]=new Ellipse("E");
for (int i=0; i<2; ++1) {
drawAShap(Shapes
);
}
}
void close()( /*N除形状,代码略$/)
private:
Shape* shapes[2];
};
int main()
{
Diagram* diagram= (4) ;
diagram->drawShapes();
diagram->close();
(5) diagram;
}
选项
答案
virtual public Shape public Ellipse new Diagram delete
解析
本题考查C++语言程序设计的能力,涉及类和抽象类、对象、函数和虚函数的定义和相关操作,以及继承关系。要求考生根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成题目。
先考查类图整体结构。本题中根据类图定义了类:Diagram、Shape、Box、Ellipse、Line和Circle。其中Shape为抽象类,表示通用图形,抽象类中应至少包含一个纯虚拟(virtual)函数。Box表示矩形,Ellipse表示椭圆,Line表示线条,三者都是Shape的子类,继承了Shape类,Circle表示圆(即特殊的椭圆),继承了Ellipse。
抽象类Shape的定义中,需要通过使用virtual标识虚函数,void paint()=0;表示paint()是纯虚函数,其定义前必须添加virtual进行表示。类Ellipse为Shape的子类,Circle为Ellipse的子类,需要在代码中体现出继承。另外,在子类的构造函数中,调用父类的构造函数,所以继承的权限为public。其语法为:public后加类名。
类Diagram中没有定义构造函数,编译器生成一个缺省的构造函数,调用是采用new关键字加类名。使用完成之后,通过delete进行释放。
因此空(1)需要表现出paint()函数为纯虚函数,即为virtual;空(2)和空(3)处添加继承父类,并且权限为public,即为:public Shape和:public Ellipse;空(4)处补充通过使用编译器生成的缺省构造函数创建对象,即ilew Diagram;空(5)处通过delete释放new创建的对象diagram。
转载请注明原文地址:https://www.kaotiyun.com/show/A6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
下列关于输入声音时的采样频率和信息储存量的叙述中,正确的是(8)。
在Word2007中,为使内容更加醒目,文章更具有条理性,可在若干段落前面添加__________。
在Excel中,若A1单元格中的内容为“全国计算机技术与软件专业技术资格(水平)考试”,在A2单元格中输入函数=LEFT(A1,2),则A2单元格显示的内容是______。
在Word编辑状态下,有些英文单词或汉字下面会自动加上红色或绿色的波浪型细下划线。以下叙述中,“波浪型细下划线(44)”是错误的。
在Word中,为将正在编辑的文档以新的文件名保存,可使用______命令。
当新插入的背景剪贴画遮挡原来的对象时,最合适的调整方法是(55)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
操作系统的功能不包括______。
内存用于存放计算机运行时的指令、程序、需处理的数据和运行结果。但是,存储在(2)中的内容是不能用指令修改的。
从表1-1中为图1-1中(1)~(4)处选择合适设备名称(每个设备限选一次)。表1-2是路由器A上的地址变换表,将图1-2中(8)~(11)处空缺的信息填写在相应的位置。
随机试题
()以扁腱止于肱骨大结节嵴。
下列药物中可诱发支气管哮喘的是
A.毒蕈中毒B.化学性食物中毒C.砷污染食品而引起食物中毒D.细菌性食物中毒E.黄曲霉毒素食物中毒死亡率最高的食物中毒是()。
杨万勇、刘瑶、吕永红各出资10万元合建了一栋三层楼房,约定该楼房由三人共有,杨万勇居住第一层,刘瑶居住第二层,吕永红居住第三层。刘瑶因常年在外做生意,打算将其居住的第二层出卖给尹发军,杨万勇、吕永红均表示反对。此间,因一个角落的屋檐坠落,致行人王洪云人身损
建设项目在开工建设之前要切实做好各项准备工作,其主要内容不包括()。
某人退休时有现金10万元,拟选择一项回报比较稳定的投资,希望每个季度能收入2000元补贴生活。那么,该项投资的有效年报酬率应为()。
华南地区第一大人工湖位于广东省的()。
据统计,和去年同期相比,H省今年元旦春节期间农民工讨薪事件的数量有明显下降,这说明企业主更积极地清偿工资。以下最能反驳上述结论的是:
______そうなケーキだなあ。ひとつくれない?
Duringthe______centurywhentheRomanEmpirefell,theGermanicAnglesandSaxonsinvadedandconqueredBritain.
最新回复
(
0
)