デザインパターンの組み合わせの初心者モード

コードパターンの組み合わせの例

1の#include <iostreamの>
 2の#include < ストリング >
 3の#include <リスト>
 4  使って 名前空間STDを、
5つの 
6  クラスコンポーネント
 7  {
 8  公共9      の仮想 ボイドショー(){}。
10  
11  }。
12  クラスの葉:公共コンポーネント
 13  {
 14  プライベート15     文字列情報。
16  
17  公共18      葉(ストリングm_info)
 19      {
 20         情報= m_info。
21      }。
22      ボイドショー()
 23      {
 24          COUT <<情報<< ENDL。
25      }。
26  
27  }。
28  
29  クラス ConcreteComponent:公共コンポーネント
 30  {
 31  プライベート32     文字列情報。
33     リスト<コンポーネント*> m_list;
34  公共35      ConcreteComponent(文字列m_info)
 36      {
 37         情報= m_info。
38      }。
39      ボイド追加(成分* m_ComponentPtr)
 40      {
 41          m_list.push_back(m_ComponentPtr)。
42      }。
43      ボイドショー()
 44      {
 45          COUT <<情報<< ENDL。
46          リスト<コンポーネント*> ::イテレータITER = m_list.begin();
47          のための(!; ITER = m_list.end(); ITER ITER ++ 48          {
 49              (* ITER) - > ショー();
50         }
 51である     };
 52である 
53れる };
 54は、 
55  のint main()の
 56である {
 57である      (ConcreteComponent m_sum " 本社" );
 58      ConcreteComponent m_com1(" ブランチ1。" );
 59      ConcreteComponent m_com2(" セグメント2 " );
 60      葉m_leaf1 (" 子会社1。" );
 61である      (葉m_leaf2 " 子会社2 " )、
 62は 
63にさ      m_com1.add(&m_leaf1)。
64      m_com1.add(&m_leaf2)。
65      m_sum.add(&m_com1)。
66      m_sum.add(&m_com2)。
67  
68      m_sum.show();
69  
70      GETCHAR()。
71      リターン 0 72 }。

 

おすすめ

転載: www.cnblogs.com/wuhongjian/p/11828688.html