早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线L

题目

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

[说明]

现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。

需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

[图6-1]

[C++代码]

class Shape{

public:

(1) void display()=0;

};

class Line:public Shape{//省略具体实现

};

class Square:public Shape{//省略具体实现

};

class XXCircle{

public:

void displayIt(){

//省略具体实现

}

//省略其余方法和属性

};

class Circle:public Shape{

private:

XXCircle *pxc;

public:

Circle();

void display();

};

Circle::Circle(){

pxc=(2);

}

void Circle::display()

{

pxc->(3);

}

class Factory{

public:

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

switch(type){

case 1:return new Square;

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=factory. (5);

if(s==NULL){

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

return;

}

s->display();

delete s;

return;

}

(1)

参考答案
正确答案:virtual
virtual
看了阅读以下说明和C++代码,将应...的网友还看了以下: