---
name: "corelinux_Decorator"
section: "3"
platform: "linux"
package: "libcorelinux-dev"
version: "0.4.32-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/corelinux_Decorator"
---

# corelinux\_Decorator(3)

Decorators can attach additional responsibilities to an object dynamically which provide a more flexible alternative to subclassing for extending functionality.

## NAME

corelinux::Decorator - Decorators can attach additional responsibilities to an object dynamically which provide a more flexible alternative to subclassing for extending functionality.

## SYNOPSIS

`#include <Decorator.hpp>`

Inherits **corelinux::CoreLinuxObject**.

### Public Member Functions

**Decorator** (Implementation aImplementation)\
 *Default Constructor requires a Implementation.*  **Decorator** (const  **Decorator** &aDecorator)\
 *Copy Constructor copies theImplementation.*  virtual **~Decorator** (void)\
 *Virtual Destructor.*  **Decorator** & **operator=** (const  **Decorator** &aDecorator)  throw (Exception)\
 *Assignment operator overload.*  bool **operator==** (const  **Decorator** &aDecorator) const \
 *Equality operator overload.*  virtual Implementation **getImplementation** (void) const \
 *Gets current theImplementation.*  virtual void **setImplementation** (Implementation aImplementation)  throw (Exception)\
 *Sets current theImplementation to aImplementation.*

### Protected Member Functions

**Decorator** (void)  throw (Assertion)\
 *Default Constructor Because a* **Decorator** *requires a implementation to work, you can not construct one without it.*

### Protected Attributes

Implementation **theImplementation**\
 **Storage** *for theImplementation object.*

## Detailed Description

### template\<class Implementation\> class corelinux::Decorator\< Implementation \>

Decorators can attach additional responsibilities to an object dynamically which provide a more flexible alternative to subclassing for extending functionality.

## Constructor & Destructor Documentation

### template\<class Implementation\> corelinux::Decorator\< Implementation \>::Decorator (Implementation aImplementation)` [inline]`

Default Constructor requires a Implementation. **Parameters:**

*Implementation* instance

### template\<class Implementation\> corelinux::Decorator\< Implementation \>::Decorator (const Decorator\< Implementation \> & aDecorator)` [inline]`

Copy Constructor copies theImplementation. **Parameters:**

*Decorator* const reference

### template\<class Implementation\> corelinux::Decorator\< Implementation \>::Decorator (void) throw (Assertion)` [inline, protected]`

Default Constructor Because a **Decorator** requires a implementation to work, you can not construct one without it. **Parameters:**

*void* .RE

**Exceptions:**

*NEVER\_GET\_HERE* .RE

## Member Function Documentation

### template\<class Implementation\> virtual Implementation corelinux::Decorator\< Implementation \>::getImplementation (void) const` [inline, virtual]`

Gets current theImplementation. **Returns:**

Implementation instance

### template\<class Implementation\> Decorator& corelinux::Decorator\< Implementation \>::operator= (const Decorator\< Implementation \> & aDecorator) throw (Exception)` [inline]`

Assignment operator overload. This may throw **Exception** if there is a problem cloning theImplementation.

**Parameters:**

*Decorator* const reference

**Returns:**

**Decorator** reference to self

**Exceptions:**

*Exception* - implementation defined

### template\<class Implementation\> bool corelinux::Decorator\< Implementation \>::operator== (const Decorator\< Implementation \> & aDecorator) const` [inline]`

Equality operator overload. **Parameters:**

*Decorator* const reference

**Returns:**

true if equal, false otherwise

### template\<class Implementation\> virtual void corelinux::Decorator\< Implementation \>::setImplementation (Implementation aImplementation) throw (Exception)` [inline, virtual]`

Sets current theImplementation to aImplementation. **Parameters:**

*Implementation* - implementation instance

**Exceptions:**

*Exception* - derivation defined

## Author

Generated automatically by Doxygen for CoreLinux++ from the source code.
