一个类定义如下:
#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
的方式?