C++でのshared_ptrの代入方法は何ですか?

C++では、shared_ptrに値を割り当てるために以下の方法を使用することができます:

  1. 一つのshared_ptrを別のshared_ptrに代入するには、代入演算子「=」を使用することができます。例えば:
std::shared_ptr<int> ptr1 = std::make_shared<int>(5);
std::shared_ptr<int> ptr2 = ptr1; // 使用赋值运算符将ptr1赋值给ptr2
  1. reset()関数を使用すると、1つのshared_ptrを別のshared_ptrに割り当てることができます。例えば:
std::shared_ptr<int> ptr1 = std::make_shared<int>(5);
std::shared_ptr<int> ptr2;
ptr2.reset(ptr1.get()); // 将ptr1赋值给ptr2

shared_ptrがオブジェクトを指している場合、別のshared_ptrに代入するとき、元のshared_ptrの参照カウントが自動的に減少することに注意する必要があります。参照カウントが0になると、管理されているオブジェクトが解放されます。代入後のshared_ptrが破棄されるか別の値が代入されると、参照カウントが増加します。これにより、shared_ptrを使ってリソースを共有し、リソースが不要になった時には自動的に解放されることが意味されます。

bannerAds