# kdecore Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# KSharedPtr< T > Class Template Reference

Can be used to control the lifetime of an object that has derived KShared. More...

`#include <ksharedptr.h>`

Inheritance diagram for KSharedPtr< T >:

[legend]
List of all members.

## Public Member Functions

| KSharedPtr ()
| KSharedPtr (T *t)
| KSharedPtr (const KSharedPtr &p)
| ~KSharedPtr ()
KSharedPtr< T > & | operator= (const KSharedPtr< T > &p)
KSharedPtr< T > & | operator= (T *p)
bool | operator== (const KSharedPtr< T > &p) const
bool | operator!= (const KSharedPtr< T > &p) const
bool | operator== (const T *p) const
bool | operator!= (const T *p) const
bool | operator! () const
| operator T * () const
T * | data ()
const T * | data () const
const T & | operator * () const
T & | operator * ()
const T * | operator-> () const
T * | operator-> ()
int | count () const

## Detailed Description

### template<class T>
class KSharedPtr< T >

Can be used to control the lifetime of an object that has derived KShared.

As long a someone holds a KSharedPtr on some KShared object it won't become deleted but is deleted once its reference count is 0. This struct emulates C++ pointers virtually perfectly. So just use it like a simple C++ pointer.

KShared and KSharedPtr are preferred over QShared / QSharedPtr since they are more safe.

WARNING: Please note that this class template provides an implicit conversion to T*. Do *not* change this pointer or the pointee (don't call delete on it, for instance) behind KSharedPtr's back.

Author:
  Waldo Bastian <bastian@kde.org>

Definition at line 100 of file ksharedptr.h.

## Constructor & Destructor Documentation

template<class T>
KSharedPtr< T >::KSharedPtr | ( |  | ) | `[inline]`

| Creates a null pointer. Definition at line 106 of file ksharedptr.h.

template<class T>
KSharedPtr< T >::KSharedPtr | ( | T * | t | ) | `[inline]`

Creates a new pointer.

Parameters:

  | t | the pointer

Definition at line 112 of file ksharedptr.h.

template<class T>
KSharedPtr< T >::KSharedPtr | ( | const KSharedPtr< T > & | p | ) | `[inline]`

Copies a pointer.

Parameters:

  | p | the pointer to copy

Definition at line 119 of file ksharedptr.h.

template<class T>
KSharedPtr< T >::~KSharedPtr | ( |  | ) | `[inline]`

| Unreferences the object that this pointer points to. If it was the last reference, the object will be deleted. Definition at line 126 of file ksharedptr.h.

## Member Function Documentation

template<class T>
T* KSharedPtr< T >::data | ( |  | ) | `[inline]`

Returns the pointer.

Returns:
  the pointer

Definition at line 153 of file ksharedptr.h.

template<class T>
const T* KSharedPtr< T >::data | ( |  | ) | const`[inline]`

Returns the pointer.

Returns:
  the pointer

Definition at line 159 of file ksharedptr.h.

template<class T>
int KSharedPtr< T >::count | ( |  | ) | const`[inline]`

Returns the number of references.

Returns:
  the number of references

Definition at line 170 of file ksharedptr.h.

The documentation for this class was generated from the following file:

- ksharedptr.h

This file is part of the documentation for kdecore Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:19:01 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003