Component::SafePointer< ComponentType > Class Template Reference
juce_gui_basics » components

Holds a pointer to some type of Component, which automatically becomes null if the component is deleted. More...

## Public Member Functions

| SafePointer ()=default
| Creates a null SafePointer. More...
| SafePointer (ComponentType *component)
| Creates a SafePointer that points at the given component. More...
| SafePointer (const SafePointer &other) noexcept
| Creates a copy of another SafePointer. More...
SafePointer & | operator= (const SafePointer &other)
| Copies another pointer to this one. More...
SafePointer & | operator= (ComponentType *newComponent)
| Copies another pointer to this one. More...
ComponentType * | getComponent () const noexcept
| Returns the component that this pointer refers to, or null if the component no longer exists. More...
| operator ComponentType * () const noexcept
| Returns the component that this pointer refers to, or null if the component no longer exists. More...
ComponentType * | operator-> () noexcept
| Returns the component that this pointer refers to, or null if the component no longer exists. More...
const ComponentType * | operator-> () const noexcept
| Returns the component that this pointer refers to, or null if the component no longer exists. More...
void | deleteAndZero ()
| If the component is valid, this deletes it and sets this pointer to null. More...
bool | operator== (ComponentType *component) const noexcept
bool | operator!= (ComponentType *component) const noexcept

## Detailed Description

### template<class ComponentType>
class Component::SafePointer< ComponentType >

Holds a pointer to some type of Component, which automatically becomes null if the component is deleted.

If you're using a component which may be deleted by another event that's outside of your control, use a SafePointer instead of a normal pointer to refer to it, and you can test whether it's null before using it to see if something has deleted it.

The ComponentType template parameter must be Component, or some subclass of Component.

You may also want to use a WeakReference<Component> object for the same purpose.

## Constructor & Destructor Documentation

## SafePointer() [1/3]

template<class ComponentType>

Component::SafePointer< ComponentType >::SafePointer | ( |  | ) |

default

Creates a null SafePointer.

## SafePointer() [2/3]

template<class ComponentType>

Component::SafePointer< ComponentType >::SafePointer | ( | ComponentType * | component | ) |

Creates a SafePointer that points at the given component.

## SafePointer() [3/3]

template<class ComponentType>

Component::SafePointer< ComponentType >::SafePointer | ( | const SafePointer< ComponentType > & | other | ) |

noexcept

Creates a copy of another SafePointer.

## Member Function Documentation

## operator=() [1/2]

template<class ComponentType>

SafePointer& Component::SafePointer< ComponentType >::operator= | ( | const SafePointer< ComponentType > & | other | ) |

Copies another pointer to this one.

## operator=() [2/2]

template<class ComponentType>

SafePointer& Component::SafePointer< ComponentType >::operator= | ( | ComponentType * | newComponent | ) |

Copies another pointer to this one.

## getComponent()

template<class ComponentType>

ComponentType* Component::SafePointer< ComponentType >::getComponent | ( |  | ) | const

noexcept

Returns the component that this pointer refers to, or null if the component no longer exists.

## operator ComponentType *()

template<class ComponentType>

Component::SafePointer< ComponentType >::operator ComponentType * | ( |  | ) | const

noexcept

Returns the component that this pointer refers to, or null if the component no longer exists.

## operator->() [1/2]

template<class ComponentType>

ComponentType* Component::SafePointer< ComponentType >::operator-> | ( |  | ) |

noexcept

Returns the component that this pointer refers to, or null if the component no longer exists.

## operator->() [2/2]

template<class ComponentType>

const ComponentType* Component::SafePointer< ComponentType >::operator-> | ( |  | ) | const

noexcept

Returns the component that this pointer refers to, or null if the component no longer exists.

## deleteAndZero()

template<class ComponentType>

void Component::SafePointer< ComponentType >::deleteAndZero | ( |  | ) |

If the component is valid, this deletes it and sets this pointer to null.

## operator==()

template<class ComponentType>

bool Component::SafePointer< ComponentType >::operator== | ( | ComponentType * | component | ) | const

noexcept

## operator!=()

template<class ComponentType>

bool Component::SafePointer< ComponentType >::operator!= | ( | ComponentType * | component | ) | const

noexcept

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

- juce_Component.h