阅读下列说明和C++代码,将应填入( )处的字句写在答题纸的对应栏内。 【说明】 某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统

admin2018-09-03  30

问题 阅读下列说明和C++代码,将应填入(    )处的字句写在答题纸的对应栏内。
【说明】
某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5—1所示的类图。

【C++代码】
{}include<iostream>
#include<:string>;
Using namespace std;
class Matrix{//各种格式的文件最终都被转化为像素矩阵
//此处代码省略
};
class Implementor{
public:
(    );显示像素矩阵m
};
class WinImp:public Implementor{
public:
Viod doPaint(Matrix m)(/*调用Windows系统的绘制函数绘制像素矩阵*/
};
class Linuxlmp:public Implementor{/*调用Linux系统的绘制函数绘制像素矩阵*/}
};
class Image{
public:
viod setImp(Implement*imp)(this->imp=imp;}
Virtual viod parseFile(string fileName)=0
protected:
Implementor*imp;
};
class BMPImage:public Image(
//此处省略代码
};
class GIFImage:public Image{
Public:
viod parseFile(string fileName){
//此处解析GIF文件并获得一个像素矩阵对象m
(    );显示像素矩阵m
}
};
class JPEGImage:public Image{
//此处代码省略
};
int main(){
//在linux操作系统上查看demo.gif图像文件Image*image=();
Implementor*imageImp=();
(    )
Image->parseFile("demo.gif");
return0;
}

选项

答案1.virtual void doPaint(Matrix m)=0 2.imp->doPaint(m) 3.new GIFImage() 4.new Linuxlmp() 5.image->setlmp(imagelmp)

解析
转载请注明原文地址:https://jikaoti.com/ti/Wea7FFFM
0

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