---
name: "corelinux_AbstractAllocator"
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_AbstractAllocator"
---

# corelinux\_AbstractAllocator(3)

AbstractAllocator is a abstract template which provides for the extension of memory managment on a TypeImpl object by TypeImpl object basis.

## NAME

corelinux::AbstractAllocator - **AbstractAllocator** is a abstract template which provides for the extension of memory managment on a TypeImpl object by TypeImpl object basis.

## SYNOPSIS

`#include <AbstractAllocator.hpp>`

Inherits **corelinux::Allocator**.

### Public Member Functions

**AbstractAllocator** (void)\
 *Default constructor.*  **AbstractAllocator** (const  **AbstractAllocator** &aRef)\
 *Copy constructor.*  virtual **~AbstractAllocator** (void)\
 *Virtual destructor.*  **AbstractAllocator** & **operator=** (const  **AbstractAllocator** &aRef)\
 *Assingment operator overload.*  bool **operator==** (const  **AbstractAllocator** &aRef) const \
 *Equality operator overload.*  TypeImpl \* **createType** (void)\
 *Create type will invoke the allocateObject method of the derivation and will increment the number of allocations.*  void **destroyType** (TypeImpl \*aPtr)\
 *Destroy type will invoke the deallocateObject method of the derivation and will increment the number of deallocation.*

### Protected Member Functions

virtual TypeImpl \* **allocateObject** (void)=0\
 *allocates a object in the subclass*  virtual void **deallocateObject** (TypeImpl \*)=0\
 *de-allocates a object in the subclass*

## Detailed Description

### template\<class TypeImpl\> class corelinux::AbstractAllocator\< TypeImpl \>

**AbstractAllocator** is a abstract template which provides for the extension of memory managment on a TypeImpl object by TypeImpl object basis.

The derivation needs to implement the allocateObject and deallocateObject mutators for memory management.

**See also:**

**Allocator**, **AbstractFactory**

## Constructor & Destructor Documentation

### template\<class TypeImpl\> corelinux::AbstractAllocator\< TypeImpl \>::AbstractAllocator (const AbstractAllocator\< TypeImpl \> & aRef)` [inline]`

Copy constructor. **Parameters:**

*AbstractAllocator* const reference

## Member Function Documentation

### template\<class TypeImpl\> virtual TypeImpl\* corelinux::AbstractAllocator\< TypeImpl \>::allocateObject (void)` [protected, pure virtual]`

allocates a object in the subclass **Returns:**

TypeImpl pointer

Implemented in **WallFactory**.

### template\<class TypeImpl\> TypeImpl\* corelinux::AbstractAllocator\< TypeImpl \>::createType (void)` [inline]`

Create type will invoke the allocateObject method of the derivation and will increment the number of allocations. In the event of any exception, the allocation count will be adjusted.

**Returns:**

TypeImpl pointer

**Exceptions:**

*any* .RE

### template\<class TypeImpl\> virtual void corelinux::AbstractAllocator\< TypeImpl \>::deallocateObject (TypeImpl \*)` [protected, pure virtual]`

de-allocates a object in the subclass **Parameters:**

*TypeImpl* pointer

### template\<class TypeImpl\> void corelinux::AbstractAllocator\< TypeImpl \>::destroyType (TypeImpl \* aPtr)` [inline]`

Destroy type will invoke the deallocateObject method of the derivation and will increment the number of deallocation. In the event of any exception, the deallocation count will be adjusted

**Parameters:**

*TypeImpl* pointer

**Exceptions:**

*any* .RE

### template\<class TypeImpl\> AbstractAllocator& corelinux::AbstractAllocator\< TypeImpl \>::operator= (const AbstractAllocator\< TypeImpl \> & aRef)` [inline]`

Assingment operator overload. **Parameters:**

*AbstractAllocator* const reference

**Returns:**

**AbstractAllocator** reference to self

### template\<class TypeImpl\> bool corelinux::AbstractAllocator\< TypeImpl \>::operator== (const AbstractAllocator\< TypeImpl \> & aRef) const` [inline]`

Equality operator overload. **Parameters:**

*AbstractAllocator* const reference

**Returns:**

true if same identity

## Author

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