试题五(15分)
阅读以下说明和C++码,将应填入 __(n)__ 处的字名写在答题纸的对应栏内。
[说明]
某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图5-1所示。现要将Circle图元加入此 绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。代码5-1既使用了 XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。代码5-2根据用户指定 的参数生成特定的图元实例,并对之进行显示操作。
绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:
Shape | XCircle | 功能 |
display() | DisplayIt() | 显示图元 |
[图5-1]
[代码5-1]
class Circle:public __(1)__{
Private:
__(2)__ m_circle;
public:
void display () {
__(3)__
}
};
[代码5-2]
class Factory{
public:
__(4)__ getShapeInstance(int type){ //生成特定类实例
switch(type){
case 0:returnnewPoint;
case 1:return new Rectangle;
case 2:return new Line;
case 3: return new Circle;
default : return NULL;
}
}
};
void main(int argc,char *argv[]){
if(argc !=2){
cout<<"error parameters !"<<endl;
return;
}
int type=atoi(argv[1]):
Factory factory;
Shape *s;
S=factory.__(5)__;
if(s==NULL){
cout<<"Error get the instance!"<<end;
return;
}
s->display();
__(6)__ ;
return;
}