wiki:cpp-unique-ptr
Table of Contents
C++ unique_ptr
unique_ptr is an exclusive-ownership smart pointer that automatically deletes its managed object when destroyed. Only one unique_ptr can own an object at a time; ownership is transferred via move semantics, never copied.
Use unique_ptr by default for dynamic memory to prevent leaks and clarify ownership.
Example
This example demonstrates exclusive ownership transfer and automatic cleanup with unique_ptr.
// compile: g++ -o unique unique.cpp // run: ./unique // description: unique_ptr transfers ownership and auto-deletes on destruction #include <iostream> #include <memory> class Resource { public: Resource() { std::cout << "Resource allocated\n"; } ~Resource() { std::cout << "Resource freed\n"; } void use() { std::cout << "Using resource\n"; } }; int main() { { std::unique_ptr<Resource> r1 = std::make_unique<Resource>(); r1->use(); std::unique_ptr<Resource> r2 = std::move(r1); // ownership transferred r2->use(); } // r2 destroyed here, resource freed return 0; }
wiki/cpp-unique-ptr.md · Last modified: by 127.0.0.1
