📄 c19-组合模式例.txt
字号:
//组合模式
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -