孙猴子装饰七十二变篇--装饰器模式C++实现

人物:
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)协议新动向
偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦
目前刚刚开通,接受读者的优质投稿…
鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!
微信扫描下方二维码,关注公众号,赶快进入音视频开发者社区吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值