2005上半年高程考试 下午第五题

试题五(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;
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值