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