阅读下列说明和C++代码,应填入(n)处。【说明】某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:为支持将

题目内容(请给出正确答案)

阅读下列说明和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(){/*此处省略显示橡皮鸭的代码*/ }

};

//其他代码省略

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
更多相关问题