Recall & Review
beginner
What is the main purpose of a destructor in C++?
A destructor is a special member function that is called automatically when an object goes out of scope or is deleted. Its main purpose is to release resources and perform cleanup tasks like freeing memory or closing files.
Click to reveal answer
beginner
How do you declare a destructor in a C++ class?
A destructor is declared with a tilde (~) followed by the class name, and it has no return type or parameters. For example: <br> <code>~ClassName() { /* cleanup code */ }</code>Click to reveal answer
beginner
When exactly is a destructor called?
A destructor is called automatically when an object is destroyed, which happens when:<br>1. A local object goes out of scope.<br>2. A dynamically allocated object is deleted.<br>3. A program ends and global/static objects are cleaned up.
Click to reveal answer
intermediate
Can you call a destructor explicitly in C++? Should you?
You can call a destructor explicitly, but it is not recommended because it can cause undefined behavior if the object is destroyed again automatically. It's best to let C++ handle destructor calls.Click to reveal answer
intermediate
Why is it important to define a destructor when your class manages dynamic memory?If your class allocates memory dynamically (e.g., with new), you must define a destructor to free that memory (e.g., with delete). Otherwise, your program will leak memory, which wastes resources and can cause crashes.Click to reveal answer
What symbol is used to declare a destructor in C++?
✗ Incorrect
A destructor is declared with a tilde (~) followed by the class name.
When is a destructor automatically called?
✗ Incorrect
Destructors run automatically when an object is destroyed, such as going out of scope or being deleted.
What happens if you forget to define a destructor for a class that uses dynamic memory?
✗ Incorrect
Without a destructor freeing dynamic memory, the program leaks memory, wasting resources.
Can a destructor have parameters or return a value?
✗ Incorrect
Destructors never have parameters or return values.
Is it good practice to call a destructor explicitly?
✗ Incorrect
Explicit destructor calls can cause undefined behavior; let C++ handle it automatically.
Explain the role of a destructor in a C++ class and when it is called.
Think about what happens when an object is no longer needed.
You got /4 concepts.
Why must you define a destructor if your class uses dynamic memory allocation?
Consider what happens if memory is not freed.
You got /3 concepts.