首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y
admin
2014-10-11
22
问题
阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DPI还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图6—1显示了各个类间的关系。
【图6.1】
这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。
【C++代码】
ClassDPI{
publiC:
staticvo~dd~aw—a—l~he(doublex1,doubley1,doublex2,doubley2)(
//省略具体实现
}
};
ClassDP2{
publiC:
statiCvoiddrawline(doublex1,doublex2,doubley1,doubley2)(
//省略具体实现
}
};
ClassDrawing(
public:
(1)voiddrawLine(doublex1,doubley1,doublex2,doubley2)=0;
};
ClassV1Drawing:publiCDrawing{
public:
voiddrawL~he(doublex1,doubley1,doublex2,doubley2){
DPi::draw—a一lihe(x1,y1,x2,y2);
}
};
ClassV2Drawing:publiCDrawing{
publiC:
voiddrawLine(doublex1,doubley1,doublex2,doubley2){
(2);
}
};
classShape(
private:
(3)_dp;
public:
Shape(Drawing。dp);
virtualvoiddraw()=0;
voiddrawLine(doublexl,doubley1,doublex2,doubley2);
};
Shape::Shape(Drawing*dp);
{
dp=dp;
}
voidShape::drawLine(doub2ex1,doubley1,doub2ex2,doubley2)
{//画一条直线
(4);
}
ClaasRectangle:publiCShape{
private:
double_x1,_y1,_x2,_y2;
public:
Rectangle(Drawing*dp,doublex1,doubley1,
doublex2,doubley2);
V01ddraw();
};
Rectangle::Rectangle(Drawing‘dp,doublexl,doubleyl,doublex2,doubley2)_
:(5)
{
x1=x1;—y1=y1;_x2=x2;_y2=y2;
}
voidRectangle::draw()
{
//省略具体实现
选项
答案
(1)virtual (2)DP2::drawline(x1,x2,y1,y2) (3)Drawing (4)_dp->drawLine(x1,y1,x2,y2) (5)Shape(dp)
解析
由函数drawLine0结尾的“=0”易知,空(1)应填virtual。
空(2)是调用DP2系统的相应方法,可参照DPI的对应函数的函数体,但要注意参数不完全相同,应填DP2::drawline(x1,x2,y1,y2)。一dpN性是用来存储Drawing对象的,参照Shape的构造函数可确认这一点,空(3)应填Drawing*。Shape类drawLine方法是通过调用Drawing对的方法来实现所需要的功能,因此空(4)应填dp->drawLine(x1,y1,x2,y2)。空(5)显然是基类构造函数,应填Shape(dp)。
转载请注明原文地址:https://kaotiyun.com/show/naDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下关于数据流图的叙述中,不正确的是______。
以下______不属于单元测试中模块接口测试的测试内容。
以下________不是敏捷开发方法Scrum的步骤。
在C程序中,设有“inta=3,b=2,c=1;”,则表达式a>b>c的值是_________。
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
以下关于CPU与I/O设备交换数据所用控制方式的叙述中,正确的是_______。
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]A公司用1台Web服务器和1台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(Perso
随机试题
被誉为“短篇小说之王”的世界著名小说家是()
《长亭送别》选自王实甫的杂剧()
判定下列各组中的向量β是否可以表示为其余向量的线性组合,若可以,试求出其表示式.β=(1,0,)T,α1=(1,1,1)T,α1=(1,-1,-2)T,α1=(-1,1,2)T。
根据《合同法》的规定,可撤销合同的当事人行使撤销权的有效期限是()。
某经济合同,乙方收受甲方定金3万元,合同规定违约金4万元,后乙方违约,未完全履行合同,此时( )。
性质不同的填料,应水平分层、分段填筑,分层压实。同一水平层路基的全宽应采用同一种填料,不得混合填筑。每种填料的填筑层压实后的连续厚度宜大于()。
乙公司20×5年3月发生如下业务:(1)3月3日,向B公司购买一批货物,向银行申请“现金银行汇票”用于结算货款。(2)3月7日,与C公司签订一份彩电购销合同。该合同规定:由C公司在10日内向乙公司提供彩电100台,共计货款25万元。双方
下列选项关于我国银行业对贷款分类实施五级分类法的表述,不正确的有()。
某房地产开发企业拟建一幢自用办公楼,预计工程造价为2000万元,准备采用邀请招标方式选择承包商,并在招标文件中要求投标人提交投标保证金。此外,为了评标工作的需要,拟组建由7人组成的评标委员会,其中该房地产开发企业总工程师、总经济师各1名,招标代理机构代表1
(福建2010春一105)一只蚂蚁从右图的正方体A顶点沿正方体的表面爬到正方体C顶点。设正方体边长为a,问该蚂蚁爬过的最短路程为()。
最新回复
(
0
)