FCT
载入中...
搜索中...
未找到
FCT::UniquePtr< T > 模板类 参考

一个简单的唯一所有权智能指针。 更多...

#include <UniquePtr.h>

FCT::UniquePtr< T > 的协作图:
Collaboration graph

Public 成员函数

 UniquePtr () noexcept
 默认构造函数,创建一个空的 UniquePtr。
 UniquePtr (T *ptr) noexcept
 从裸指针构造 UniquePtr,获得其所有权。
 UniquePtr (UniquePtr &&other) noexcept
 移动构造函数,从另一个 UniquePtr 转移所有权。
UniquePtroperator= (UniquePtr &&other) noexcept
 移动赋值运算符,从另一个 UniquePtr 转移所有权。
 UniquePtr (const UniquePtr &)=delete
UniquePtroperator= (const UniquePtr &)=delete
 ~UniquePtr ()
 析构函数,销毁所管理的对象。
T * release () noexcept
 释放对当前对象的所有权,并返回裸指针。
void reset (T *ptr=nullptr) noexcept
 替换管理的对象。
T * get () const noexcept
 获取裸指针。
T & operator* () const
 解引用操作符。
T * operator-> () const noexcept
 箭头操作符。
 operator bool () const noexcept
 检查是否管理着一个对象。

Private 属性

T * m_ptr

详细描述

template<typename T>
class FCT::UniquePtr< T >

一个简单的唯一所有权智能指针。

模板参数
T被管理的对象的类型。
注解
  • 这个智能指针确保当它本身被销毁时,它所管理的对象也会被销毁。
  • 它通过禁用拷贝构造和拷贝赋值来保证所有权的唯一性。
  • 所有权可以通过移动构造和移动赋值来转移。
  • 使用 FCT_DELETE 来销毁对象。
  • T 类型不能继承自 FCT::RefCount,对于引用计数的对象,请使用 Ptr。

在文件 UniquePtr.h24 行定义.

构造及析构函数说明

◆ UniquePtr() [1/4]

template<typename T>
FCT::UniquePtr< T >::UniquePtr ( )
inlinenoexcept

默认构造函数,创建一个空的 UniquePtr。

在文件 UniquePtr.h33 行定义.

这是这个函数的调用关系图:

◆ UniquePtr() [2/4]

template<typename T>
FCT::UniquePtr< T >::UniquePtr ( T * ptr)
inlineexplicitnoexcept

从裸指针构造 UniquePtr,获得其所有权。

参数
ptr指向要管理对象的指针。

在文件 UniquePtr.h39 行定义.

◆ UniquePtr() [3/4]

template<typename T>
FCT::UniquePtr< T >::UniquePtr ( UniquePtr< T > && other)
inlinenoexcept

移动构造函数,从另一个 UniquePtr 转移所有权。

参数
other用于转移所有权的另一个 UniquePtr。

在文件 UniquePtr.h45 行定义.

函数调用图:

◆ UniquePtr() [4/4]

template<typename T>
FCT::UniquePtr< T >::UniquePtr ( const UniquePtr< T > & )
delete
函数调用图:

◆ ~UniquePtr()

template<typename T>
FCT::UniquePtr< T >::~UniquePtr ( )
inline

析构函数,销毁所管理的对象。

在文件 UniquePtr.h66 行定义.

函数调用图:

成员函数说明

◆ get()

template<typename T>
T * FCT::UniquePtr< T >::get ( ) const
inlinenoexcept

获取裸指针。

返回
返回管理的对象的裸指针。

在文件 UniquePtr.h95 行定义.

◆ operator bool()

template<typename T>
FCT::UniquePtr< T >::operator bool ( ) const
inlineexplicitnoexcept

检查是否管理着一个对象。

返回
如果指针非空则返回 true,否则返回 false。

在文件 UniquePtr.h119 行定义.

◆ operator*()

template<typename T>
T & FCT::UniquePtr< T >::operator* ( ) const
inline

解引用操作符。

返回
返回管理对象的引用。

在文件 UniquePtr.h103 行定义.

◆ operator->()

template<typename T>
T * FCT::UniquePtr< T >::operator-> ( ) const
inlinenoexcept

箭头操作符。

返回
返回管理对象的指针。

在文件 UniquePtr.h111 行定义.

◆ operator=() [1/2]

template<typename T>
UniquePtr & FCT::UniquePtr< T >::operator= ( const UniquePtr< T > & )
delete
函数调用图:

◆ operator=() [2/2]

template<typename T>
UniquePtr & FCT::UniquePtr< T >::operator= ( UniquePtr< T > && other)
inlinenoexcept

移动赋值运算符,从另一个 UniquePtr 转移所有权。

参数
other用于转移所有权的另一个 UniquePtr。
返回
*this 的引用。

在文件 UniquePtr.h52 行定义.

函数调用图:

◆ release()

template<typename T>
T * FCT::UniquePtr< T >::release ( )
inlinenoexcept

释放对当前对象的所有权,并返回裸指针。

返回
返回之前管理的对象的裸指针,调用者负责释放它。

在文件 UniquePtr.h74 行定义.

◆ reset()

template<typename T>
void FCT::UniquePtr< T >::reset ( T * ptr = nullptr)
inlinenoexcept

替换管理的对象。

参数
ptr指向新对象的指针,默认为 nullptr。

在文件 UniquePtr.h84 行定义.

这是这个函数的调用关系图:

类成员变量说明

◆ m_ptr

template<typename T>
T* FCT::UniquePtr< T >::m_ptr
private

在文件 UniquePtr.h124 行定义.


该类的文档由以下文件生成: