首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
admin
2008-08-01
110
问题
阅读下列说明和C++代码,应填入(n)处。
【说明】
某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:
为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-11所示:
其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与 QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为:类FlyNoWay与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与 QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。
【C++代码】
#include<iostream>
using namespace (1); class FlyBehavior{
public: (2) fly()=0;
};
class QuackBehavior{
public:(3) quack() = 0;
};
class FlyWithWings:public FlyBehavior{
public:void fly(){ cout<< “使用翅膀飞行 ! ” <<endl; }
};
class FlyNoWay:public FlyBehavior{
public:void fly(){ cout<< “不能飞行!”<<endl;}
};
class Quack:public QuackBehavior{
public:void quack(){ cout<<“发出\‘嘎嘎\’声 !”<<endl; }
};
class Squeak:public QuackBehavior{
public:void quack(){cout<<“发出空气与橡皮摩擦声!”<<endl; }
};
class QuackNoWay:public QuackBehavior{
public:void quack (){ cout<<“不能发声 !”<<endl; }
};
class Duck{
protected:
FlyBehavior*(4);
QuackBehavior*(5);
public:
void fly(){(6); }
void quack(){(7););
virtual void display()=0;
};
class RubberDuck:public Duck{
public:
RubberDuck(){
flyBehavior=new (8);
quackBehavior=new (9);
}
~RubberDuck(){
if(!flyBehavior)delete flyBehavior;
if(!quackBehavior) delete quackBehavior;
}
void display(){/*此处省略显示橡皮鸭的代码*/ }
};
//其他代码省略
选项
答案
(1) std (2) virtual void (3) virtual void (4) fiyBehavior (5) quackBehavior (6) flyBehavior->fly() (7) quackBehavior->quack() (8) FlyNoWay() (9) Squeak()
解析
C++标准的输出输入的命名空间为std,在本题的代码中使用了cout,因此必须使用标准的命名空间,空(1)处应该填写std;FlyWithWings和FlyNoWay类继承了 FlyBehavior,根据它们的成员函数fly的定义可知,fly函数的返回值为void,又因为 FlyBehavior中函数为纯虚拟函数,因此,空(2)处应该填写virtual void,空(3)处的原理和空(2)相同;Duck是各种鸭子种类的基类,而每一种鸭子都具有飞行特征和发声特征,这两种特征分别通过FlyBehavior 和 QuackBehavior来实现,因此空(4)和(5)处应该为这两个类的对象或者指针(这两个类为纯虚类,因此只能采用指针形式)。每一种具体的鸭子种类的飞行特征和发声特征是不同的,因此,在每一种具体鸭子类的构造函数中需要指定其具有的飞行特征和发声特征,表10-6已经指出了RubberDuck的这两种特征分别为FlyNoWay 和 Squeak,所以,通过构造相应类的对象来实现该特征。
转载请注明原文地址:https://www.kaotiyun.com/show/4fDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
高速缓存cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速缓存的命中率为(3)%。若地址变换表如下所示,
下述关于错误处理流程管理的原则,(49)的说法是不正确的。
某供应商数据库中的供应关系为SPJ(供应商号,零件号,工担号,数量),如下命令查询某工程至少用了3家供应商(包含3家)供应的零件的平均数量,并按工程号的降序排列。SELECT工程号,(14)FROMSPJGROUPBY工程号(15)
负载压力性能测试需求分析时,应该选择(63)类型的业务作为测试案例。 ①高吞吐量的业务 ②业务逻辑复杂的业务 ③高商业风险的业务 ④高服务器负载的业务 ⑤批处理的业务
在计算机体系结构中,CPU内部包括程序计数器PC、存储器数据寄存器MDR、指令寄存器IR和存储器地址寄存器MAR等。若CPU要执行的指令为:MOV R0,#100(即将数值100传送到寄存器R0中),则CPU首先要完成的操作是(1)。
软件测评相关的标准一般可以分为国际标准、国家标准、行业标准以及企业标准。一般情况下,技术要求最高的是______。A.国际标准B.国家标准C.行业标准D.企业标准
软件设计师王某在其公司的某一综合信息管理系统软件开发工作中承担了大部分程序设计工作。该系统交付用户,投入试运行后,王某辞职离开公司,并带走了该综合信息管理系统的源程序,拒不交还公司。王某认为,综合信息管理系统源程序是他独立完成的,他是综合信息管理系统源程序
设系统中有R类资源m个,现有n个进程互斥使用。若每个进程对R资源的最大需求为w,那么当m、n、w取下表的值时,对于下表中的a~e五种情况,(26)两种情况可能会发生死锁。对于这两种情况,若将(27),则不会发生死锁。
在面向对象技术中,(43)是一组具有相同结构、相同服务、共同关系和共同语义的(44)集合,其定义包括名称、属性和操作。(44)
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(38)
随机试题
会计分录
病毒性肝炎的诊断依据是
1岁男婴,因反应低下、腹胀、便秘,少哭多睡1个月来诊。查体:体温36.2℃,四肢稍凉,毛发枯黄稀疏,皮肤粗糙,心率68次/分,心音低钝,眼距宽,唇厚舌大,身高70cm,四肢短粗,不会独坐及爬行,表情呆滞,哭声嘶哑,腹部膨隆,有脐疝。以下诊断中最可能的是
某县政府与甲开发公司签定《某地区改造项目协议书》,对某地区旧城改造范围、拆迁补偿费及支付方式和期限等事宜加以约定。乙公司持有经某市政府批准取得的国有土地使用证的第15号地块,位于某地区改造范围。甲开发公司获得改造范围内新建的房屋预售许可证,并向社会公开预
下列关于中支架敷设的叙述不正确的是()。
依据《劳动法》的规定,县级以上各级人民政府劳动行政部门对用人单位违反劳动法律、法规的行为,有权作出的行政处理行为有()。
下列关于金融市场分类错误的是()。
1984年党的十二届三中全会把实行对外开放定为基本国策。最重要的依据是邓小平提出()
Cache的中文译名是
Mynexthusbandwilldefinitelybehen-pecked.Everyonelaughablyassumesmypresentoneis,soImayaswellhavetheadvantage
最新回复
(
0
)