共享指针分配/初始化的差异

时间:2019-01-18 19:39:22

标签: c++11

我们可以通过三种方式初始化shared_pointer。

1. shared_ptr<int>p(new int(8));
2. shared_ptr<int>p=shared_ptr<int>(8);
3. shared_ptr<int>p=make_shared<int>(8);

在单操作初始化和异常处理支持方面,我们知道3rd语句比1st语句更具优势。

根据抛出的异常,性能等,第一条和第二条语句之间是否有区别。

1 个答案:

答案 0 :(得分:0)

第二种初始化方法不起作用。 必须是:

shared_ptr<int> p2 = shared_ptr<int>(new int(8));

除此之外,1和2之间没有区别,因为两者都使用相同的构造函数。