The class is called unique_ptr
because only one unique_ptr
at a time can own a dynamically allocated object. By using its overloaded assignment operator or copy constructor, a unique_ptr
can transfer ownership of the dynamic memory it manages. The last unique_ptr
object that maintains the pointer to the dynamic memory will delete the memory. This makes unique_ptr
an ideal mechanism for returning dynamically allocated memory to client code. When the unique_ptr
goes out of scope in the client code, the unique_ptr
’s destructor destroys the dynamically allocated object and deletes its memory.