免费智能真题库 > 历年试卷 > 软件设计师 > 2021年下半年 软件设计师 下午试卷 案例
  第5题      
  知识点:   C++

 
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
 
问题:5.1   [说明]
享元(flyweight)模式主要用于减少创建对象的数量,以降低内存占用,提高性能。现要开发-一个网络围棋程序,允许多个玩家联机下棋。由于只有一台服务器 ,为节省内存空间,采用享元模式实现该程序,得到如图5-1所示的类图。
【C++代码】
import java.util.*:
enum PieceColor {BLACK,WHITE}//棋子颜色
class PiecePos{//棋子位置
private intx;
private int y:
pubic PiecePos(int a,int b){x=a;y=b;}
public int getX0{retun x;}
public int getYO{return y;}
}
abstract class Piece{//棋子定义
protected PieceColor m_color;//颜色
protected Piecemopos m_pos;//位置
public Piece(PieceColor,color PiecePos
pos){m color=color;
{:sod=sod u
(1);
}
class BlackPiece extends Piece{
public BlackPiece(PieceColor
color,PiecePos pos){super(color,pos);}
public void drawO{
System out println("draw a black
piece");}
}
class WhitePiece extends Piece{
public WhitePiece(PieceColor
color,PiecePos pos){super(c
olor,pos):}
public void draw0{
System.out.println("draw a white
piece");
}
{
class PieceBoard{
//棋盘上已有的棋子
private static final
ArrayList<(2)>m_arrayPiece=new Arra
yList
private String m_blackName;//黑方名称
private String m_whiteName;//白方名称
public PieceBoard(String black,String
white){
m_blackName=black;m_whiteName=white;
}
//一步棋,在棋盘上放一颗棋子
public void SetePiece(PieceColor
color,PiecePos pos){
(3)piece=null;
if(color==PieceColor.BLACK)(//放黑子
piece=new BlackPiece(color,pos);//获取一颗黑子
System.out.println(m_blackName+"在位置("+pos.getX0)
+","+pos.getYO+")");
(4):
{
else{//放白子
piece=new WhitePiece(color,pos);//获取一颗白子
System.out.println(m whiteName+"在位置("+pos.getX0)+
","+pos.getYO+")");
(5):
}
m_arrayPiece.add(piece);
}
}
 
 
 

   知识点讲解    
   · C++
 
       C++
        C++语言是一种面向对象的强类型语言,由AT&T的Bell实验室于1980年推出。
        C++语言是C语言的一个向上兼容的扩充,而不是一种新语言。C++是一种支持多范型的程序设计语言,它既支持面向对象的程序设计,也支持面向过程的程序设计。
        C++支持基本的面向对象概念,包括对象、类、方法、消息、子类和继承。C++完全支持多继承,并且通过使用try/throw/catch模式提供了一个完整的异常处理机制。它同时支持静态类型和动态类型,也完全支持多继承,不提供自动的无用存储单元收集,这必须通过程序员来实现,或者通过编程环境提供合适的代码库来予以支持。
   题号导航      2021年下半年 软件设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第5题    在手机中做本题