人物:
WuKong 悟空
Heart_Hole 菩提老祖学艺处,学会七十二变等
West_Sea 海,找到金箍棒
装饰器模式
悟空到了菩提老祖这个类,被装饰了七十二变
到了大海,被装饰了金箍棒。
设计模式对C++学习者来说并不容易,尤其刚刚接触,本系列希望通过,武侠小说,名著,动漫等方式,通过作品中师徒关系,功夫继承,表达类之间的关联,继承关系。
下一篇:超级赛亚人悟空与弗利沙的战斗篇–状态模式
上一篇:黄药师及其五大弟子功夫继承关系篇----命令模式C++实现
Exe : Decorator.o
g++ -o Exe Decorator.o
main.o : Decorator.cpp
g++ -c -g Decorator.cpp
rm :
Decorator
#include <iostream>
#include <string>
using namespace std;
//人物:
//WuKong 悟空
//Heart_Hole 菩提老祖学艺处,学会七十二变等
//West_Sea 海,找到金箍棒
//装饰器模式
class WuKong
{
public:
bool stick = false;
bool change_72 = false;
string name = "Sunwukong";
virtual void show();
};
void WuKong::show()
{
}
//灵台方寸山,斜月三星洞
class Heart_Hole : public WuKong
{
public:
WuKong* p_WuKong = NULL;
Heart_Hole(WuKong*p_WuKong)
{
this->p_WuKong = p_WuKong;
this->stick = this->p_WuKong->stick;
this->change_72 = this->p_WuKong->change_72;
this->change_72 = true;
}
void show();
};
void Heart_Hole::show()
{
cout << "My name is " << this->p_WuKong->name << endl;
if (this->change_72 == true)
{
cout << "I have change_72 !" << endl;
}
else
{
cout << "I does not have change_72 !" << endl;
}
if (this->stick == true)
{
cout << "I have stick !" << endl;
}
else
{
cout << "I does not have stick !" << endl;
}
}
//sea
class West_Sea : public WuKong
{
public:
WuKong* p_WuKong = NULL;
West_Sea(WuKong*p_WuKong)
{
this->p_WuKong = p_WuKong;
this->stick = this->p_WuKong->stick;
this->change_72 = this->p_WuKong->change_72;
this->stick = true;
}
void show();
};
void West_Sea::show()
{
cout << "My name is " << this->p_WuKong->name << endl;
if (this->change_72 == true)
{
cout << "I have change_72 !" << endl;
}
else
{
cout << "I does not have change_72 !" << endl;
}
if (this->stick == true)
{
cout << "I have stick !" << endl;
}
else
{
cout << "I does not have stick !" << endl;
}
}
int main(void)
{
WuKong* p_WuKong = new WuKong;
p_WuKong = new Heart_Hole(p_WuKong);
p_WuKong->show();
p_WuKong = new West_Sea(p_WuKong);
p_WuKong->show();
//delete
return 0;
}
哎呦喂ヾ(✿゚▽゚)ノ~路长馆小,雪轻帘薄,酒热乎,这位爷~您ヾ(✿゚▽゚)ノ~ 里面坐~
本公众号专注分享C++,ffmpeg,opencv等相关音视频知识
webrtc,udp,tcp,rtsp,rtmp,srt/nginx+rtmp等流媒体协议和服务器
同时也会有大厂音视频技术专家不定期直播分享…
国人开发流媒体srs服务器,及yangrtc(国人版的webrtc)协议新动向
偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦
目前刚刚开通,接受读者的优质投稿…
鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!
微信扫描下方二维码,关注公众号,赶快进入音视频开发者社区吧!
![](https://img-blog.csdnimg.cn/32ebb60e13f9449496052c247d2ccf65.png)
![](https://img-blog.csdnimg.cn/bfd8a35f631f44059d8d1d228a22d54b.jpg)
![](https://img-blog.csdnimg.cn/1b3e3fc19f5f4837a6514769eabf4e10.png)