#include "HandCake.h"
//手抓饼 HandCake::HandCake()
{
this->price=;
this->name="手抓饼";
} HandCake::~HandCake(void)
{
}
int HandCake::GetPrice()
{
return ; }
string HandCake::GetName()
{ return name;
}
#include "Ham.h"

Ham::Ham(void)
{
} Ham::Ham(HandCake *cake)
{ //this->cake=cake;
int p=cake->price;
this->name=cake->name+"加火腿";
this->price=cake->price+;
} Ham::~Ham(void)
{
}
string Ham::GetName()
{ return this->name;
}
int Ham::GetPrice()
{
return this->price; }
// Decoration.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "HandCake.h"
#include "Ham.h"
#include <iostream>
#include "vld.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
HandCake *cake=new HandCake();
Ham *HamHandCake1=new Ham(cake);
std::cout<<HamHandCake1->GetName()<<HamHandCake1->GetPrice()<<"元"<<endl;
Ham *HamHandCake2=new Ham(HamHandCake1);
std::cout<<HamHandCake2->GetName()<<HamHandCake2->GetPrice()<<"元"<<endl; getchar();
delete cake;
delete HamHandCake1;
delete HamHandCake2;
return ;
}

运行结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAAsCAIAAACi8RAaAAADy0lEQVR4nO2c23IbIQyGed28VV6jOTikadLe5uAkbt/Ap75Cr7ojI+lH7MKabvWPJoNZIQR8YO8Mk/DleZvY5eXlxcVFCCGEEGOMMYZTRSZeL/onAbP1YrRsMuPyEdva+9Ueaa0s/lXigCDZ0WmdGuOnjzBqLlc1OWqumeSouWbSaNS0737wm0D8Oi9ywPGzmtLWNVWlqMVTiQ64IXYeAZ9duG0yrnj6ijDixzXuQtSU4L3L8gZaNBdReT0xcpk0tzSxK4uaWMim5DKp6FQbgVqQFow6lO5mkU4ANABF++ioNVEt1MTzD6PGV1ST9pRnVRc1cWggvqX+/9XV85Za9gsUz3soOdXEesxNkIAYh5roKY4Lw6oliXktndUlCKOWyDILRtS0UHVR0z5mI9NVF+MDLi3EZIe5QF29bKnVQk37mw04D2qitMjgyNGQctQEtUCNL5XWtilqImdgCAA1kIyjZpWGWizREI1/DAoTSY0xvhjNuGwW1JIexfzBeLP1Yp7YczmqdaoNkzsONbFGW0WtADIs8sFsJU1GoKZtnoXr+mVLrd1rgdj8H0KNYxfaoLZY8q5fdtSaosYjYBaNINrpNLpx1MRBJRqeivX2ZBy1EApRs6AgriLoTkOtaGmzwTlqloAWWXbCclF73VHTUBMnHfuIqAWdPPt21zrCfWkJ4/gVFx6EwrtlIbp53Q0GUAtjjzSjstu9dOsb12xw42dk4jMRhcUCZBdF7QailkibO7x3cU3WAcfPqsV695ZPvypFLbu/AYK8SRX47MJtk3Hxc04ccm/5lCaANSV4qtvXHTW/r8YLOKXe8ulXt287an5fjRdKUTtvPv2qFmqRKeRQ4zOoSXvKs6q7tOLQtPGeNx/co+Y8q1ZvO2p+X42Pyxi/h3xEZ5pYUjYqVNHqbU/N76sF/fe42LCTfDQyaA3gJjvtFXS33t+t96u/5vfVeCGequd8AEz46XyoDeb31XgBN+wqHwyTpS+c0iTF9Z6a31ejPYr595wPny5cL+aJPccrvu+p+X01XsBtu8pHRKqIM5DPVMX3/T0xv6/GC/xvt/lwqmiNxhxGrRp59zOixiNgFo0g2uk0uvGl1broJ5/INDwV6+3JVEPt68eBmt9X4wWQVW/5lEpse2bUxEFiHxG1YFgqrUab8SJYS+ODCL3lUyo8NLBbRurh40DN76vx+Y1MHeZTqorIWvXweaDm/8rP1UrfPg/UHDVXKz1uDtQcNVcrPW6O1Bw1Vys9bY7UHDVXK33/eaTmqLlayVFzzaQfv35Tc9RcjfQHJfc5wX6vAQQAAAAASUVORK5CYII=" alt="" />

C++设计模式之装饰者模式的更多相关文章

  1. Java 设计模式泛谈&装饰者模式和单例模式

    设计模式(Design Pattern) 1.是一套被反复使用.多人知晓的,经过分类编目 的 代码设计经验总结.使用设计模式是为了可重用代码,让代码更容易维护以及扩展. 2.简单的讲:所谓模式就是得到 ...

  2. C#设计模式(9)——装饰者模式(Decorator Pattern)

    一.引言 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类).A ...

  3. 设计模式之装饰者模式-java实例

    设计模式之装饰者模式 需求场景 我们有了别人提供的产品,但是别人提供的产品对我们来说还不够完善,我们需要对这个产品的功能进行补强,此时可以考虑使用装饰者模式. 我们已经有了产品,而且这个产品的功能非常 ...

  4. Java设计模式 - - 单例模式 装饰者模式

    Java设计模式 单例模式 装饰者模式 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 静态代理模式:https://www.cnblogs.com/StanleyBlogs/p/1 ...

  5. python 设计模式之装饰器模式 Decorator Pattern

    #写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...

  6. PHP设计模式之装饰器模式(Decorator)

    PHP设计模式之装饰器模式(Decorator) 装饰器模式 装饰器模式允许我们给一个类添加新的功能,而不改变其原有的结构.这种类型的类属于结构类,它是作为现有的类的一个包装 装饰器模式的应用场景 当 ...

  7. 实践GoF的23种设计模式:装饰者模式

    摘要:装饰者模式通过组合的方式,提供了能够动态地给对象/模块扩展新功能的能力.理论上,只要没有限制,它可以一直把功能叠加下去,具有很高的灵活性. 本文分享自华为云社区<[Go实现]实践GoF的2 ...

  8. Java 的设计模式之一装饰者模式

    刚开始接触装饰者的设计模式,感觉挺难理解的,不够后来花了一个晚上的时间,终于有头绪了 装饰者设计模式:如果想对已经存在的对象进行装饰,那么就定义一个类,在类中对已经有的对象进行功能的增强或添加另外的行 ...

  9. Head First 设计模式 --3 装饰者模式 开闭原则

    装饰者模式:动态的将责任附加到对象上,若要扩展功能,装饰者提供了比集成更有弹性的替代方案.设计原则:1:封装变化2:多用组合,少用继承3:针对接口编程,不针对实现编程4:为对象之间的松耦合设计而努力5 ...

  10. [设计模式] 9 装饰者模式 Decorator

    转:http://www.jellythink.com/archives/171#prettyPhoto 什么是装饰模式? 在GOF的<设计模式:可复用面向对象软件的基础>一书中对装饰模式 ...

随机推荐

  1. An error has occurred,See error log for more details

    解决Eclipse3.2配合MyEclipse5.0M2使用时打开JSP发生“An error has occurred,See error log for more details”错误的解决方法 ...

  2. file_get_contents()的另一种使用方法

    今天在网上看到一篇挺不错的文章,拿过来保存学习一下.本文源地址为:http://www.kuitao8.com/20140727/2867.shtml $data = file_get_content ...

  3. JavaScript处理HTML DOM

    本来只想好好写一篇博文,最后弄到好像重构一样了,越做越不满意,先这样吧:) HTML DOM - JavaScript处理HTML DOM 获取HTML元素 改变HTML元素 增删HTML元素 添加事 ...

  4. 算法分析-快速排序QUICK-SORT

    设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序.值得注意的 ...

  5. USB OTG学习

    1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Devic ...

  6. 以前用Delphi写的CSDN免积分下载器

    用了AlphaControl皮肤组件,原理很简单,就是CSDN的一个漏洞.我主要是使用WinInet来获取相关信息,然后从里面分析出真实的下载URL,同时我也是用了AES加密.function Get ...

  7. 安装gstreamer

    安装gstreamerglib2.44.0locate libffi.soexport LIBFFI_CFLAGS=-L/opt/vagrant/embedded/lib/./confiure./co ...

  8. poj3085

    #include <stdio.h> #include <stdlib.h> int main() { ; scanf("%d",&n); whil ...

  9. jquery去除字符串首尾空格的方法:$.trim()

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. ros消息时间同步与回调

    转载自http://blog.csdn.net/zyh821351004/article/details/47758433 方式一: 全局变量形式  : TimeSynchronizer 步骤: 1. ...