![]() |
VOOZH | about |
:
Program 1: Create an object of the class which is created dynamically using the new operator and deleting it explicitly using the delete operator:
Constructor is called! Writing! Destructor is called!
Program 2: Create an array of objects using the new operator dynamically. Whenever an array of the object of a class is created at runtime then it is the programmer’s responsibility to delete it and avoid a memory leak:
Constructor is called! Constructor is called! Constructor is called! Writing! Writing! Writing! Destructor is called! Destructor is called! Destructor is called!
Program 3:
Below is the program where delete is used to delete an array of objects:
Explanation: This program will crash in runtime. In this program, constructors are working properly but the destructor is executed only for the first object, and after that program is crashing at runtime because of a memory leak. It is because 3 objects are created at runtime but only one object is deleted explicitly and that's why the remaining two objects are crashing at runtime.
:
In C++, the single object of the class which is created at runtime using a new operator is deleted by using the delete operator, while the array of objects is deleted using the delete[] operator so that it cannot lead to a memory leak.