卡在理解以下初始化方式shared_ptr



类定义如下:

#include<memory>
using namespace std;
class A
{
public:
    A(int n) : data{new int[n],default_delete<int[]>()}{}
    shared_ptr<int> data;
};

那么如何理解data{new int[n],default_delete<int[]>()}.初始化方式data{}对我来说很奇怪,因为我不熟悉C++11。 据我了解,这种方式是否意味着让data首先指向连续堆内存,然后将释放此内存的方式定义为delete int[]而不是delete int

您只需使用std::shared_ptr's构造函数之一(请参阅此处(:

template< class Y, class Deleter > 
shared_ptr( Y* ptr, Deleter d );

其中default_delete具有阵列专用化(请参阅此处(。

相关内容

  • 没有找到相关文章

最新更新