您的位置:首页 > 编程语言 > C语言/C++

设计模式--组成模式实现C++

2010-10-18 23:41 429 查看
/*********************************
*设计模式--组成模式实现
*C++语言
*Author:WangYong
*Blog:http://www.cnblogs.com/newwy
********************************/
#include <iostream>
#include <vector>
using namespace std;
class Component
{
public:
Component(){}
~Component(){}
virtual void Operation() = 0;
virtual void Add(const Component &){}
virtual void Remove(const Component&){}
virtual Component *GetChild(int){return 0;}
};
class Composite:public Component
{
public:
Composite(){vector<Component*>::iterator itend = comVec.begin();}
~Composite(){}
void Operation()
{
vector<Component*>::iterator comIter = comVec.begin();
for(;comIter != comVec.end(); comIter++)
{
(*comIter)->Operation();
}
}
void Add(Component *com){comVec.push_back(com);}
void Remove(Component *com){comVec.erase(&com);}
Component * GetChild(int index){return comVec[index];}
private:
vector<Component*> comVec;
};
class Leaf:public Component
{
public:
Leaf(){}
~Leaf(){}
void Operation(){cout<<"Leaf operation.."<<endl;}
};
int main()
{
Leaf *l = new Leaf();
l->Operation();
Composite *com = new Composite();
com->Add(l);
com->Operation();
Component *ll = com->GetChild(0);
ll->Operation();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: