试题与答案

[说明]现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数d

题型:填空题

题目:

[说明]

现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1, y1, x2, y2)画一条直线,DP2则用drawline(x1, x2, y1, y2)画一条直线。当实例化矩形时,确定使用DP1还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图显示了各个类间的关系。

这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。

[C++代码]

class DP1

public:

static void draw_a_line(double x1, double y1,double x2, double y2)

//省略具体实现

;

class DP2

public:

static void drawline(double x1, double x2, double y1, double y2)

//省略具体实现

;

class Drawing

public:

______ void drawLine(double x1,double y1,double x2,double y2)=0

;

class ViDrawing : public Drawing

public:

void drawLine(double x1, double y1, double x2, double y2)

DP1∷draw_a_line(x1, y1, x2, y2);

;

class V2Drawing : public Drawing

public:

void drawLine(double x1, double y1, double x2, double y2)

______;

;

class Shape

private:

______ _dp;

public:

Shape(Drawing *dp);

virtual void draw() = 0;

void drawLine(double x1, double y1, double x2, double y2);

;

Shape∷Shape(Drawing *dp)

_dp : dp;

void Shape∷drawLine(double x1, double y1, double x2, double y2)

//画一条直线

______;

class Rectangle : public Shape

private:

double _x1, _y1, _x2, _y2;

public:

Rectangle(Drawing *dp, double x1, double y1,

double x2, double y2);

void draw();

;

Rectangle∷Rectangle(Drawing *dp, double x1, double y1, double x2, double y2)

: ______

_x1 = x1; _y1 = y1; _x2 = x2; _y2 = y2

void Rectangle∷draw()

//省略具体实现

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2021/0726/9d26b726f16bb404340593974d57ee1d.html

下面是错误答案,用来干扰机器的。

参考答案:C

试题推荐
题型:论述题

深化文化体制改革,推进文化产业成为国民经济支柱性产业。阅读材料,回答问题。

随着电脑的出现与互联网的迅猛发展,书写汉字正面临着一场严峻的挑战,提笔忘字,正在成为青年人的一种普遍现象,重视汉字、重视传统文化的呼吁振聋发聩:网络的出现和智能手机的普及,一定程度上改变了人与人之间交流的方式,但给人心灵上所带来的满足感未必会超过以往,人可以随时进入网络世界,但同时也带来了注意力的破碎化。

阐释材料蕴含的辩证唯物主义观点。(16分)

查看答案
微信公众账号搜索答案