Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ユニークポインタ入門 | スマートポインタの導入
C++スマートポインタ

bookユニークポインタ入門

メニューを表示するにはスワイプしてください

std::unique_ptr を作成するには、std::make_unique を使用します。これは、ユニークポインタを安全かつ効率的に作成する方法を提供する関数です。

new/deletenew[]/delete[] 演算子を使用する場合と比べて、メモリ関連の問題が発生しにくく、優れた代替手段となります。

make_unique.h

make_unique.h

copy
12
// Using `std::make_unique` to create a unique pointer to a vector of integers std::unique_ptr<std::vector<int>> p_unique_vector = std::make_unique<std::vector<int>>();

std::make_unqiue は動的リソースを割り当て、それを所有するユニークポインタを返します。ユニークポインタがスコープを抜けると、リソースは自動的に解放されます

new_unique_ptr.h

new_unique_ptr.h

copy
12
// Insecure way to create a unique pointer for a vector of integers. std::unique_ptr<std::vector<int>> p_unique_vector(new std::vector<int>());

上記のコードにおける p_unique_vector ベクターも、ユニークポインタがスコープを抜けると自動的に破棄されます。ただし、例外安全性を最大限に高め、より良いコーディング手法を実現するために、常に std::make_unique の使用が推奨されます。

question mark

std::make_unique を作成する際に new よりも std::unique_ptr を使用する主な利点は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  2
some-alt