刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。

 【说明】

以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图6-1所示。

【C++代码】

#include <iostream>

#include <string>

using namespace std;

class DrawCircle {      //绘制圆形,抽象类

         public:

                  (1)  ;//定义参数为 int radius, int x, int y

                virtual~DrawCircle() { }

};

 

class RedCircle:public DrawCircle {     //绘制红色圆形

         public:

                void drawCircle(int radius, int x, int y) {

                       cout << "Drawing Circle[red,radius: " <<radius;

                      cout << ",x: " <<x<< ",y: "<<y<< "]" << end1;

                }

};

 

class GreenCircle:public DrawCircle {    //绘制绿色圆形

         public:

                 void drawCircle(int radius, int x, int y) {

                         cout <<"Drawing Circle[green,radius: " << radius;

                         cout <<",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:

                 Circle(int x,int y,int radius,DrawCircle *drawCircle)      (3)     {

                         this->x = x;

                         this->y = y;

                         this->radius = radius;

                 }

         public:

                 void draw() {

                         drawCircle ->       (4)      ;

                 }

};

 

int main()

{

        Shape *redCircle=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)drawCircle(radius,x,y)

(5)new redCircle()

(6)new greenCircle()

解析:

(1) 根据说明和代码,DrawCircle是一个抽象类,用于绘制圆形,其中需要定义一个绘制圆形的函数,即drawCircle,参数为圆的半径、横坐标和纵坐标,因此填写为void drawCircle (int radius, int x, int y)。

(2) Shape类是一个形状抽象类,其中需要一个指向DrawCircle类的指针成员来绘制不同的形状,因此填写为DrawCircle* drawCircle。

(3) Circle类继承自Shape类,并且需要调用父类Shape中的构造函数来初始化drawCircle指针,因此填写为: drawCircle(drawCircle)。

(4) 在Circle类的draw方法中,需要调用父类Shape中保存的drawCircle对象的drawCircle方法来绘制圆形,因此填写为drawCircle(radius, x, y)。

(5) 在main函数中创建红色圆形的实例,需要实例化RedCircle类并传递给Circle构造函数,因此填写为new RedCircle()。

(6) 在main函数中创建绿色圆形的实例,需要实例化GreenCircle类并传递给Circle构造函数,因此填写为new GreenCircle()。

创作类型:
原创

本文链接:阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。  【说明】 以

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share