组合模式
#include<iostream>
#include<list>
using namespace std;
//组合模式
class Company {
public:
Company(string _name) {
this->name = _name;
}
virtual void Add(Company *c) = 0;
virtual void Remove(Company* c) = 0;
virtual void Display(int depth) = 0;
virtual void LineOfDuty() = 0;
protected:
string name;
};
//树枝节点
class ConcreteCompany :public Company {
public:
ConcreteCompany(string _name):Company(_name){
}
virtual void Add(Company* c) {
children->push_back(c);
}
virtual void Remove(Company* c) {
c