问答题

阅读下列说明和C++代码,在 (n) 处填入适当的字句。
[说明]
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.4所示。

为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.11所示。

图10.11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticaITakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
[C++代码]
#include<iostream>
using namespace std;
class FlyBehavior
public : virtual void fly() = 0;
class SubSonicFly:public FlyBehavior
public: void fly() cout<<"亚音速飞行! "<< end1;
;
class SuperSonicFly:public FlyBehavior
public: void fly() cout<<,超音速飞行 ! << endl;
;
class TakeOffBehavior
public: virtual void takeOff() = 0;
class VerticalTakeOff:public TakeOffBehavior
public: void takeOff() cout<<"起飞! "<<endl;
;
class LongDistanceTakeOff:public TakeOffBehavior
public: void takeOff () cout<< "长距离起飞! <<endl;
;
class AirCraft
protected:
(1) ;
(2) ;
public :
voicl fly() (3) ;
void takeOff() (4) ;

class Helicopter: public AirCraft
public :
Helicopter ()
flyBehavior = new (5) ;
takeOffBehavior = new (6) ;

(7)
if (! flyBehavior) delete flyBehavior;
if (! takeOffBehavior) delete takeOffBehavior;


//其他代码省略

【参考答案】

(1) FlyBehavior* flyBehavior
(2) TakeOffBehavior* takeO......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.5所示。 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.12示。 图10.12中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 [Java代码] interface FlyBehavior public void fly(); ; class SubSonicFly implements FlyBehavior public void fly()(System.out.println( 亚音速飞行! ); ; class SuperSonicFly implements FlyBehavior public void fly()(System.out.println( 超音速飞行! ); ; interface TakeOffBehavior public void takeOff(); ; class VerticalTakeOff implements TakeOffBehavior public void takeOff()(System.out.println( 垂直起飞! ); ; class LongDistanceTakeOff implements TakeOffBehavior public void takeOff()System.out.println( 长距离起飞! ); ; abstract class AirCraft protected (1) ; protected (2) ; public void fly()( (3) ;) public void takeOff() (4) ; ; class Helicopter (5) AirCraft public Helicopter () flyBehavior=new (6) ; takeOffBehavior=new (7) ; ; 其他代码省略
单项选择题