标签:
// 111.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <string> #include <iostream> using namespace std; class Person { private: string m_strName; public: Person(string strName) { m_strName = strName; } Person(){} virtual void Show() { cout << "装扮的是:" << m_strName << endl; } }; class Finery :public Person { protected: Person* m_component; public: void Decorate(Person* component) { m_component = component; } virtual void show() { m_component->Show(); } }; class TShirt :public Finery { public: virtual void Show() { cout << "T Shirts" << endl; m_component->Show(); } }; class BigTrouser :public Finery { public: virtual void Show() { cout << "Big Trouser" << endl; m_component->Show(); } }; int _tmain(int argc, _TCHAR* argv[]) { Person* p = new Person("小李"); BigTrouser* bt = new BigTrouser(); TShirt* ts = new TShirt(); bt->Decorate(p); ts->Decorate(bt); ts->Show(); return 0; }
标签:
原文地址:http://www.cnblogs.com/itdef/p/4424919.html