首页
题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。【说明】 某网络游戏存在战士(Fighter)、

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。

【说明】

某网络游戏存在战士(Fighter)、野蛮人(Savage)、白法师(White Witch)三种角色,它们具有Role接口,角色的类图关系如图1.1所示。现要将黑法师(BlackWitch)角色加入此网络游戏以实现功能扩充。已知某第三方库已经提供了法师(Witch)类,且完全满足系统新增的黑法师角色所需的功能,但法师 (Witch)不是由Role派生而来,它提供的接口不能被系统直接使用。代码8-1既使用了法师(Witch),又遵循了Role规定的接口,既避免了从头开发一个新的黑法师类,又可以不修改游戏中已经定义的接口。代码8-2根据用户指定的参数生成特定的角色实例,并对之进行显示操作。

游戏中定义的接口与黑法师(BlackWitch)提供的显示接口及其功能见表1.1。

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。【说明】 某网络游戏存在战士(Figh

【代码8-1】

class BlackWitch: public (1) {

private:

(2) m_BlackWitch;

public:

void display() {

m_BlaekWitch. (3) ;

} };

【代码8-2】

class Factory {

public:

(4) getRolelnstance(int type){ //生成特定类实例

switch (type) {

case 0: return new Fighter;

case 1: return new Savage;

case 2: return new WhiteWitch;

case 3: return new BlackWitch;

default: return NULL;

}

}

};

void main(int arge,ehar * argv[ ] ) {

if(arge ! =2){

cout < < "error parameters !" < < end1;

return;

}

int type = atoi(argv[ 1 ] );

Factory factory;

Role * s;

s = factory. (5);

if(s = = NULL) {

cout < < "Error get the instance !" < < end1;

return;

}

s-- > display();

delete s;

return;

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改