万能百科  > 所属分类  > 

阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完

阅读以下关于某绘图系统的技术说明、部分UML类图及C++程序,将C++程序中(1)~(6)空缺处的语句填写完整。

【说明】

某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。

现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。【C++代码5-1】既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。【C++代码5-2】根据用户指定的参数生成特定的图元实例,并对它进行显示操作。

该绘图系统定义的接口与XCircle提供的显示接口及其功能如表5-13所示。

【C++代码5-1】

class Circle: public (1) {

Private;

(2) m_circle;

Public;

void display(){

m_circle. (3)

}

};

【C++代码5-2】

class Factory{

public;

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

Switch(type){

case 0: return new Point;

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!"<<endl;

return;

}

s->display();

(6);

Return;

}

正确答案:

(1)Shape(2)XCircle(3)displayIt()(4)Shape*(5)getShapeInstance(type)(6)ddete s(1)Shape(2)XCircle(3)displayIt()(4)Shape*(5)getShapeInstance(type)(6)ddete s 解析:这是一道考查用接口实现类的功能扩充的程序分析题。本试题的解答思路如下。 由于C++具有多继承性,因此在C++实现中,通常采用多继承来代替接口。 由题干关键信息“某绘图系统存在Point、Line和S

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签