问题 问答题

【代码5-1】
class Circle:public (1)
pfivme:
(2) m_circle;
public:
void display()
m_circle. (3)


【代码5-2】
class Factory
public:
(4) getShapeInstance (int type) //生成特定类实例
switch (type)
case 0:rcturn new Point;
Case l:return new Rectangle;
case 2: return new Line;
case 3: return new Circle;
default: return NULL;
void main (int argo, char *argv[])
if (argc!=2)
cout << "error parameters !" << endl; return; inttype=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)delete s

解析:

[分析]:
题目中明确要求Circle具有Shape接口,所以,第1空应填上Shape。因为要重用 XCircle类而不用从头开发一个新的Circle类,所以,凡是Circle类实现Shape的接口时都应调用相应的XCircle类提供的方法。因此第2空应填上Xcircle,第3空应填上 displayIt()。阅读主程序,第5空调用factory对象的方法,而类Factory类只有一个方法为getShapeInstanee,所以第5空应填入getShapeInstance,参数为用户运行程序时指定的参数,程序中为type参数,表明需要生成哪一种类型的对象。同样,因为s是Shape*类型,所以,getShapeInstance(type)的返回值类型为shape*,因此第4空应填入Shape*;程序退出前需要释放指针s所占用的内存空间,所以第6空应填写delete s。

单项选择题 A1/A2型题
判断题