Memory 是否将此更改为使用自动\u ptr? 我一直在阅读C++ AutoPPTR和UNQuYJPTR,并想在我正在玩的一个类中尝试使用它们。但我很难让它工作

Memory 是否将此更改为使用自动\u ptr? 我一直在阅读C++ AutoPPTR和UNQuYJPTR,并想在我正在玩的一个类中尝试使用它们。但我很难让它工作,memory,auto-ptr,Memory,Auto Ptr,如何将这些指针转换为自动指针或类似的指针,以便自动处理指针的删除 标题- 主体- 目前,它正在使用普通指针工作,但有时会出现访问冲突错误。我很确定我知道是什么引起的。。但是“最好”的方法可能是使用最近添加到c++11中的自动删除功能 提前感谢。不要使用auto\u ptr。请尝试唯一\u ptr或共享\u ptr中的一种。Sutter解释了何时使用: 如果有疑问,默认情况下首选unique_ptr,如果需要,您可以随时将convert移至shared_ptr。但是,如果您从一开始就知道您需要共享

如何将这些指针转换为自动指针或类似的指针,以便自动处理指针的删除

标题- 主体-

目前,它正在使用普通指针工作,但有时会出现访问冲突错误。我很确定我知道是什么引起的。。但是“最好”的方法可能是使用最近添加到c++11中的自动删除功能


提前感谢。

不要使用
auto\u ptr
。请尝试
唯一\u ptr
共享\u ptr
中的一种。Sutter解释了何时使用:

如果有疑问,默认情况下首选unique_ptr,如果需要,您可以随时将convert移至shared_ptr。但是,如果您从一开始就知道您需要共享所有权,请通过make#u shared(请参阅下面的第2页)直接转到shared#ptr

在他的博客中:

3。auto_ptr有什么用?

auto_ptr被最仁慈地描述为一种勇敢的尝试 在C++移动语义之前创建一个UNIQuyPPTR。 auto_ptr现在已弃用,不应在新代码中使用。什么时候 如果有机会,尝试进行全局搜索并替换auto_ptr以 代码库中唯一的\u ptr;绝大多数的使用都会起作用 同样,它可能会公开(作为编译时错误)或修复(以静默方式) 你不知道自己有一两个虫子

因此,您的成员声明更改为:

 sf::Texture * tSpriteSheet;
致:

std::unique_ptr tSpriteSheet;
对于返回原始指针的成员函数,您有一个明显的选择:如果类不可移动,则不能返回
unique\u ptr
。因此,您可以:

  • 保留签名
  • 返回一个
    const&unique\u ptr
  • 返回对对象的引用

选择最适合您需要的。

不要使用
auto\u ptr
。请尝试
唯一\u ptr
共享\u ptr
中的一种。Sutter解释了何时使用:

如果有疑问,默认情况下首选unique_ptr,如果需要,您可以随时将convert移至shared_ptr。但是,如果您从一开始就知道您需要共享所有权,请通过make#u shared(请参阅下面的第2页)直接转到shared#ptr

在他的博客中:

3。auto_ptr有什么用?

auto_ptr被最仁慈地描述为一种勇敢的尝试 在C++移动语义之前创建一个UNIQuyPPTR。 auto_ptr现在已弃用,不应在新代码中使用。什么时候 如果有机会,尝试进行全局搜索并替换auto_ptr以 代码库中唯一的\u ptr;绝大多数的使用都会起作用 同样,它可能会公开(作为编译时错误)或修复(以静默方式) 你不知道自己有一两个虫子

因此,您的成员声明更改为:

 sf::Texture * tSpriteSheet;
致:

std::unique_ptr tSpriteSheet;
对于返回原始指针的成员函数,您有一个明显的选择:如果类不可移动,则不能返回
unique\u ptr
。因此,您可以:

  • 保留签名
  • 返回一个
    const&unique\u ptr
  • 返回对对象的引用
选择一个最适合你需要的