13.2.2. Defining Classes That Act Like Pointers

For our HasPtr
class to act like a pointer, we need the copy constructor and copy-assignment operator to copy the pointer member, not the string
to which that pointer points. Our class will still need its own destructor to free the memory allocated by the constructor that takes a string
(§ 13.1.4, p. 504). In this case, though, the destructor cannot unilaterally free its associated string
. It can do so only when the last HasPtr
pointing to that string
goes away.
The easiest way to make a class act like a pointer is to use shared_ptr
s to manage the resources in the class. Copying (or assigning) a ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.