...

/

Objects in Memory

Objects in Memory

Learn how to create, delete, and manage objects in memory using specific operators.

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:

Press + to interact
auto* user = new User{"John"}; // allocate and construct
user->print_name(); // use object
delete user; // destruct and deallocate

We 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 of the User class

The same thing goes with delete, it:

  • Destructs the User object by calling its destructor
  • Deallocates/frees the memory that the User object was placed in

It is possible to separate these two actions (memory allocation and object construction) in C++. This is rarely used but has some important and ...