---
name: "zipios_ReferenceCount"
section: "3"
platform: "linux"
package: "libzipios++-dev"
version: "0.1.5.9+cvs.2007.04.28-6"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/zipios_ReferenceCount"
---

# zipios\_ReferenceCount(3)

ReferenceCount is useful to ensure proper handling of the reference count for (objects of) classes handled through a SimpleSmartPointer.

## NAME

zipios::ReferenceCount\< Type \> - **ReferenceCount** is useful to ensure proper handling of the reference count for (objects of) classes handled through a **SimpleSmartPointer**.

## SYNOPSIS

`#include <simplesmartptr.h>`

### Public Member Functions

**ReferenceCount** ()\
 *Constructor intializes count to zero.*  **ReferenceCount** (const **ReferenceCount** &src)\
 *Copy-constructor intializes count to zero.*  const **ReferenceCount** & **operator=** (const **ReferenceCount** &src)\
 *The assignment operator doesn't copy the reference count, it leaves it unchanged.*

### Friends

class **SimpleSmartPointer\< Type \>**\
 **SimpleSmartPointer** *needs to be a friend to invoke the private ref() and unref() methods.*  class **SimpleSmartPointer\< const Type \>**\
 class **FileEntry**\
 *Type also needs to be a friend to invoke the private ref() and unref() methods, in case Type doesn't want to inherit* **ReferenceCount** *and thus needs to invoke ref() and unref() through forwarding member functions.*  class **Bogus**\

## Detailed Description

### template\<class Type\>

class zipios::ReferenceCount\< Type \>" **ReferenceCount** is useful to ensure proper handling of the reference count for (objects of) classes handled through a **SimpleSmartPointer**.

Subclassing **ReferenceCount** is all a class needs to become ready for being handled by **SimpleSmartPointer**. Another way is to add a **ReferenceCount** member variable to a class and write two methods 'void ref() const' and 'unsigned int unref() const' that invoke the same methods in the **ReferenceCount** variable.

Definition at line 99 of file simplesmartptr.h.

## Constructor & Destructor Documentation

### template\<class Type\> zipios::ReferenceCount\< Type \>::ReferenceCount ()` [inline]`

Constructor intializes count to zero.

Definition at line 122 of file simplesmartptr.h.

### template\<class Type\> zipios::ReferenceCount\< Type \>::ReferenceCount (const ReferenceCount\< Type \> & src)` [inline]`

Copy-constructor intializes count to zero. It doesn't copy it from src.

Definition at line 126 of file simplesmartptr.h.

## Member Function Documentation

### template\<class Type\> const ReferenceCount& zipios::ReferenceCount\< Type \>::operator= (const ReferenceCount\< Type \> & src)` [inline]`

The assignment operator doesn't copy the reference count, it leaves it unchanged.

Definition at line 130 of file simplesmartptr.h.

## Friends And Related Function Documentation

### template\<class Type\> friend class FileEntry` [friend]`

Type also needs to be a friend to invoke the private ref() and unref() methods, in case Type doesn't want to inherit **ReferenceCount** and thus needs to invoke ref() and unref() through forwarding member functions.

Definition at line 117 of file simplesmartptr.h.

### template\<class Type\> friend class SimpleSmartPointer\< Type \>` [friend]`

**SimpleSmartPointer** needs to be a friend to invoke the private ref() and unref() methods.

Definition at line 102 of file simplesmartptr.h.

## Author

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