阅读下列说明和C++代码,将应填入()处的字句写在答题纸的对应栏内。 【说明】 某图像预览程序要求能够查看BMP、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1所示的类图。 【C++代码】 #include<iostream>#include<:string>;Usingnamespacestd;classMatrix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};classImplementor{public:();显示像素矩阵m};classWinImp:publicImplementor{public:VioddoPaint(Matrixm){/*调用Windows系统的绘制函数绘制像素矩阵*/};classLinuxImp:publicImplementor{/*调用Linux系统的绘制函数绘制像素矩阵*/}};classImage{public:viodsetImp(Implement*imp){this->imp=imp;}VirtualviodparseFile(stringfileName)=0protected:Implementor*imp;};classBMPImage:publicImage{//此处省略代码};classGIFImage:publicImage{Public:viodparseFile(stringfileName){//此处解析GIF文件并获得一个像素矩阵对象m();显示像素矩阵m}};classJPEGImage:publicImage{//此处代码省略};intmain(){//在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 LinuxImp() 5. image->setImp(imageImp)