问答题
阅读下列说明和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;
//其他代码省略