阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。 【说明】 以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图7所示。 【C++代码】 #includ

admin2019-10-07  39

问题 阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
    【说明】
    以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图7所示。

    【C++代码】
    #include<iostream>
    #include<string>
    using namespace std;
class DrawCircle{    //绘制圆形,抽象类
public:
    ______(1);    ∥定义参数为
    int radius,int x,hat y
    virtual~DrawCircle() {}
  };
  class RedCircle:public DrawCircle{    ∥绘制红色圆形
  public:
    void draw Cirele(int radius,hatX,hat y){
    cout<<’’Drawing Circle[red,radius:’’<radius;
    cout<<’’,x:’’<<x<<’’,y:’’<<y<<’’]’’<<end1;
    }
  };
  class GreenCircle:public DrawCircle{  //绘制绿色圆形
  public:
    void draw Circle(in tradius,int x,int y){
    tout<<’’Drawing Circle[green,radius:’’<<radius;
    tout<<’’,x:’’<<x<<’’,y:’’<<y<<’’]’’<<end1;
    }
  };
  class Shape{  //形状,抽象类
  protected:
  ______(2);
public:
    Shape(DrawCircle*drawCircle){
    this->drawCircle=drawCircle;
    }
    virtual~shape(){}
public:
    virtual void draw()=0;
  };
  class Circle:public Shape{  //圆形
  private:
    int x,y,radius;
public:
    Cirele(int x,int y,int radius,Draw Circle*draw Circle)
    ______(3);
    {
    this->x=x;
    this->y=y;
    this->radius=radius;
    }
public:
    void draw(){
    draw Circle->______(4);
    }
};
int main()
{
    Shape*red Circle=new Circle(100,100,10,_____(5));  //绘制红色圆形
    Shape*greenCircle=new Circle(100,100,10,_____(6));//绘制绿色圆形
    redCircle->draw();
    greenCircle->draw();
    return 0:
}

选项

答案(1)void drawCircle(int radius,int x,int y) (2)DrawCircle*drawCircle (3)drawcircle (4)drawCirele(radius,x,y) (5)new RedCircle() (6)new GreenCircle()

解析 第(1)空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle(int radius,int x,int y)。
第(2)空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填DrawCircle drawCirele。
第(3)空这里填drawcircle,用->drawcircle来引用父类的成员。
第(4)空调用drawCircle(radius,x,y)方法。
第(5)、(6)空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。
转载请注明原文地址:https://kaotiyun.com/show/zsxZ777K
0

相关试题推荐
最新回复(0)