博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Design Pattern --- Composite
阅读量:4557 次
发布时间:2019-06-08

本文共 817 字,大约阅读时间需要 2 分钟。

qingwenclass Component{public:    virtual void foo() = 0;};class LeafA : public Component{public:    // Interface.    virtual void foo() override { cout <<"LeafA::foo()." <
m_components;public: // Interface. virtual void foo() override { for (auto i : m_components) { i->foo(); } } void add(Component *component) { m_components.push_back(component); }};int main(int argc, char *argv[]){ Composite *c1 = new Composite, *c2 = new Composite, *c = new Composite; c1->add(new LeafA); c2->add(new LeafA), c2->add(new LeafB); c->add(c1), c->add(c2); // 这里体现了 Composite 模式的优势。 // 不区别对待单个 Leaf 和 Composite。 // 使得递归每一个 Component 变得容易。 c->foo(); return 0;}

 

转载于:https://www.cnblogs.com/walfud/articles/2872998.html

你可能感兴趣的文章
STL中排序函数的用法(Qsort,Sort,Stable_sort,Partial_sort,List::sort)
查看>>
如何解决php 生成验证码图片不显示问题
查看>>
PHP,javascript实现大文件上传
查看>>
c#图像处理算法学习
查看>>
webApi之FromUri和FromBody区别
查看>>
【SoapUI】http接口测试
查看>>
各种工具网站
查看>>
数据库事务
查看>>
xe7 控件升级
查看>>
TFrame bug
查看>>
刚学习的如何才能自信的拍美美的婚纱照呢(要结婚啦)
查看>>
M51文件注释
查看>>
关于临界资源访问互斥量的死锁问题
查看>>
django-view层
查看>>
异步加载JS的方法。
查看>>
golang-gorm框架支持mysql json类型
查看>>
【tool】白盒测试
查看>>
图论其一:图的存储
查看>>
20180923-WebService
查看>>
z变换
查看>>