c19-组合模式例.txt
来自「C++课件,很好用的,帮助大家学习C++.」· 文本 代码 · 共 46 行
TXT
46 行
//组合模式
class Graph
{
public:
virtual ~Graph();
virtual viod Draw();
virtual RECT PaintCanvas();
virtual void Add(Graph *) {}
virtual void Remove(Graph *) {}
virtual Graph * Items(int n) {}
};
class Shape:public Graph
{
public:
virtual ~Shape();
virtual viod Draw();
virtual RECT PaintCanvas();
};
class Picture:public Graph
{
public:
virutal ~Picture();
virtual viod Draw()
{for each g in _graphs //伪代码
g->Darw();
}
virtual RECT PaintCanvas()
{
RECT rect;
SetRect(&rect,0,0,0,0);
for each g in _graphs //伪代码
UnionRect(&rect,&rect,&(g->PaintCanvas()));
}
virtual void Add(Graph * p) {_graphs->Add(p);}
virtual void Remove(Graph * p) {_graphs->Remove(p);}
virtual Graph * Items(int n) {return _graphs->Items[n]; }
private:
list<Graph *> * _graphs;
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?