Objects in Memory
Learn how to create, delete, and manage objects in memory using specific operators.
We'll cover the following...
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 constructuser->print_name(); // use objectdelete 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
Usertype - Constructs a new
Userobject in the allocated memory space by calling the constructor of theUserclass
The same thing goes with delete, it:
- Destructs the
Userobject by calling its destructor - Deallocates/frees the memory that the
Userobject 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 ...