質問内容
下記にヒープ領域に整数型(int)を5つ格納できる配列を作るコードがあります。
クラスA内にその領域のアドレスを保管するメンバ変数Elementがあります。
そのメンバ変数Elementの型はunique_ptrですがオブジェクトがスコープを抜けた時
自動で開放されるのでしょうか?
非常に初歩的な質問ですがどうかご教授よろしくお願いします。
###ソースコード
c++
1#include<iostream> 2#include<memory> 3 4class A{ 5 private: 6 std::unique_ptr<int[]> Element; 7 int Size; 8 9 public: 10 ////////////////////////////////// 11 // 動的配列の確保とその中に値代入 12 ////////////////////////////////// 13 A(int NewSize){ 14 this->Size = NewSize; 15 this->Element.reset(new int[this->Size]); 16 for(int i=0;i<this->Size;i++){ 17 this->Element[i] = i; 18 } 19 } 20 21 //////////////////////////// 22 // デフォルトデストラクタ 23 //////////////////////////// 24 ~A() = default; 25 26 ///////////////////// 27 // 動的配列内表示 28 ///////////////////// 29 void Print(){ 30 for(int i=0;i<this->Size;i++){ 31 std::cout << this->Element[i] << std::endl; 32 } 33 } 34 35}; 36 37int main(){ 38 A a(5); 39 a.Print(); 40 41 return 0; 42}
###実行結果
0 1 2 3 4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/16 08:26 編集
2019/11/16 09:49
退会済みユーザー
2019/11/16 10:09