スマート ポインタを手動で管理すると、メモリ管理をより細かく制御できることを理解してください。共有ポインタと一意のポインタという 2 つのスマート ポインタ タイプが定義されています。ポインターを指定してスマート ポインターを手動で作成します。スマート ポインターを破棄するには、reset() メソッドを使用します。実際の例では、共有ポインタと固有ポインタの使用法を示します。スマート ポインターを手動で管理すると、パフォーマンスが最適化され、メモリ リークを防ぐことができます。
C++ でスマート ポインターを手動で管理して、より正確な制御を実現スマート ポインターは、C++ プログラマに動的に割り当てられたメモリを自動的に管理する便利な方法を提供しますが、スマート ポインターを手動で管理すると、より詳細な制御と最適化が可能になります。 スマート ポインタの種類を理解する C++ には 2 つの主なスマート ポインタの種類があります:shared_ptr<T> shared_ptr(T* ptr); unique_ptr<T> unique_ptr(T* ptr);スマート ポインターを破棄するには、
メソッドを使用します: reset()
shared_ptr<T>::reset(); unique_ptr<T>::reset();実際的なケース 次のコードを検討してください:
#include <memory> class MyClass { public: MyClass() { std::cout << "Constructor called" << std::endl; } ~MyClass() { std::cout << "Destructor called" << std::endl; } }; int main() { // 使用 shared_ptr { auto sharedPtr = std::make_shared<MyClass>(); std::cout << "Shared pointer count: " << sharedPtr.use_count() << std::endl; sharedPtr.reset(); std::cout << "Shared pointer count: " << sharedPtr.use_count() << std::endl; } // 使用 unique_ptr { auto uniquePtr = std::make_unique<MyClass>(); std::cout << "Unique pointer count: " << uniquePtr.get() << std::endl; uniquePtr.reset(); std::cout << "Unique pointer count: " << uniquePtr.get() << std::endl; } return 0; }実行出力
Constructor called Shared pointer count: 1 Destructor called Shared pointer count: 0 Constructor called Unique pointer count: 0x119c580 Destructor called Unique pointer count: 0x0
以上がより正確な制御のために C++ でスマート ポインターを手動で管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。