الگوی طراحی Decorator در c++‎

 

 زمانی مفید است که می خواهید قابلیت (به صورت ایستا یا پویا) را به یک شی اضافه کنید بدون کلاس زیر کلاس کلاس پایه  و همچنین دیگر اشیاء یک کلاس پایه را تحت تاثیر قرار ندهید.
 
مثال ساده :
( کد نسبت به کد موجود در لینک منبع یه دلیل وجود نشت حافظه در کد موجود در لینک اصلاح شد )