首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
阅读下列说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在对应栏内。 [说明] 已知对某几何图形绘制工具进行类建模的结果如图5-1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virreal)函数),表示通用图形,Bo
admin
2012-01-13
35
问题
阅读下列说明、图和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://kaotiyun.com/show/A6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
Word2010中的格式刷可用于复制段落的格式,若要将选中的当前段落格式重复应用多次,应()。
在Windows7中,磁盘文件类型可以根据______来识别。
在Word中采用(47)可实现下图显示的排版格式。
信息传递的三个基本环节中,信息接收者称为(9)________________。
在Word2010“查找和替换”文本框中,输入()符号可以搜索0到9的数字。
企业数据中心经常需要向各有关方面提供并展现处理后的数据。以下关于数据展现的叙述中,(11)是不正确的。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
在文档中插入形状“圆”后,在圆心位置输入了字符C却看不到,为将字符C显示出来,可以右击该形状,选择将其__________。
在Excel中,______函数的功能是将指定单元格区域中的最小值返回并显示在当前单元格中。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
随机试题
8个月婴儿,于11月8日因呕吐、水样泻、发热、流涕2天入院,大便镜检白细胞1~3/HP,可见脂肪滴,大便pH偏酸性,可能的病原体是
简述附带民事诉讼原告人的权利和义务。
半解剖式人工牙牙尖斜度约为()
含有靛蓝和靛玉红的药材是
青蒿与地骨皮除均能退虚热外,又均能()。
工作总时差的计算方法有()。
水泥混凝土路面施工中,常见的质量控制关键点有( )。
在其他条件不变的情况下,如果某产品需求价格弹性系数等于1,则当该产品价格提高时,()。
Hairlosscanbedesteuctiveforthemillionsofmenandwomenwhoexperienceit.Nowscientistsarereportingthatasubstancef
认为教育对儿童的发展能起主导作用和促进作用,但需要确定儿童已经达到的发展水平和可能达到的发展水平,并提出“最近发展区”概念的是()。
最新回复
(
0
)