享元(flyweight)模式主要用于减少创建对象的数量,以降低内存占用,提高性能。现要开发一个网络围棋程序,允许多个玩家联机下棋。由于只有一台服务器,为节省内存空间,采用享元模式实现该程序,得到如图5-1所示的类图。

C++代码
#include <iostream>
#include <vector>
using namespace std;
enum PieceColor{BLACK, WHITE}; //棋子颜色
class PiecePos{ //棋子位置
private:
int x;
int y;
public:
PiecePos(int a,int b); x(a),y(b){}
int getX(){return x;}
int getY(){return y;}
};
class Piece{ //棋子定义

piece=new BlackPiece(color,pos); //获取一颗黑子
count<<m_blackName <<"在位置(" <<pos.getX() <<","<<pos.getY()<< ")";
( 4 );
}else{ //放白子
piece=new WhitePiece(color,pos); //获取一颗白子
count<<m_whiteName <<"在位置(" <<pos.getX() <<","<<pos.getY()<< ")";
( 5 );
}
m_vecPiece.push_back(piece);
}
};
正确答案及解析
正确答案
解析
(1) virtual void DrawO {}
(2) Piece*
(3) Piece *
(4) piece->Draw0
(5) piece->Draw0
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案