智能指针的语法

  • 本文关键字:语法 指针 智能 c++
  • 更新时间 :
  • 英文 :


在这个唯一指针的排序中

std::unique_ptr<SDL_Window, void(*)(SDL_Window*)> window_;

我找不到任何具有这种描述的资源,所以我的猜测是,我们创建一个指针并将其传递给函数,返回值存储在window_中

不,这只是声明变量window_,它根本没有初始化它。

您正在寻找的资源在这里:

template<
class T,
class Deleter = std::default_delete<T>
> class unique_ptr;

它只是用一个非默认的deleter声明一个唯一的ptr:void(*)(SDL_Window*)部分是函数指针的类型,这意味着在初始化window_时必须传入正确的deleter函数。

如果只使用了一个deleter函数,最好将其设为函子,因为该函数是函子类型的静态方法,不需要传递给构造函数。

我找不到任何具有这种降级的资源

这是一个变量声明。变量的类型为std::unique_ptr<SDL_Window, void(*)(SDL_Window*)>,变量的名称为window_。更具体地说,变量是默认初始化的,在std::unique_ptr等非平凡类型的情况下,这意味着将调用默认构造函数。std::unique_ptr的默认构造函数将自己初始化为空指针。

相关内容

  • 没有找到相关文章

最新更新