支援創建動態數組
C++11 時,std::shared_ptr
尚無支援創建動態數組,忘記的話可以看這篇
C++17 支援了,讓 std::shared_ptr
的功能變得更全面。
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <memory>
class Resource {
public:
Resource() { std::cout << "Resource acquired : " << this << "\n"; }
~Resource() { std::cout << "Resource destroyed : " << this << "\n"; }
};
int main() {
std::cout << "~Enter Scope" <<std::endl;
{
std::shared_ptr<Resource[]> res1 = std::make_shared<Resource[]>(3);
}
std::cout << "~Leave Scope" <<std::endl;
return 0;
}
執行結果: