代码之家  ›  专栏  ›  技术社区  ›  Mario

新的自动关键字指针是否会删除自身?

  •  0
  • Mario  · 技术社区  · 8 年前

    如果我有这条线

    auto* f = new boost::posix_time::time_input_facet("%d %b %Y %H:%M:%S");
    

    我必须删除指针吗?或者它自己清理?

    delete f; // ??
    

    我知道auto-ptr和shared-ptr会自动删除,但我不知道auto

    1 回复  |  直到 8 年前
        1
  •  5
  •   Olivier Sohn    8 年前

    auto 与此无关 auto_ptr ,它只是告诉编译器推断一个类型。

    是的,在你提供的例子中, delete 是需要的。

    有点离题:你提到 自动PTR (这个不推荐)和 shared_ptr ,但也有 unique_ptr 它非常方便,因为它非常轻(几乎没有开销),并且可以在只有一个所有者的情况下使用。