Objects in memory
All the objects we use in a C++ program reside in memory. Here, we will explore how objects are created and deleted from memory, and also describe how objects are laid out in memory.
Creating and deleting objects
In this section, we will dig into the details of using new
and delete
. Consider the following way of using new
to create an object on the free store and then deleting it using delete
:
auto* user = new User{"John"}; // allocate and construct
user->print_name(); // use object
delete user; // destruct and deallocate
I don't recommend that you call new
and delete
explicitly in this manner, but let's ignore that for now. Let's get to the point; as the comments suggest, new
actually does two things, namely:
- Allocates memory to hold a new object of the
User
type - Constructs a new
User
object in the allocated memory space by calling the constructor...