Creating and deleting objects

In this section, we will dig into the details of using new and delete. We are all familiar with the standard way of using new for creating 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 

As the comments suggest, new actually does two things:

  1. Allocates memory to hold a new object of the User type
  2. Constructs a new User object in the allocated memory space by calling the constructor of the User class

The same thing goes with delete:

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

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.