Destructors

Cleanup and resource deallocation

Interview Relevant: Memory management

Destructors

Called when object goes out of scope or is deleted.

Code Examples

Destructors for resource cleanup.

cpp
1class Resource {
2    int* data;
3
4public:
5    Resource(int size) : data(new int[size]) {
6        cout << "Acquired" << endl;
7    }
8
9    ~Resource() {
10        delete[] data;
11        cout << "Released" << endl;
12    }
13};
14
15void example() {
16    Resource r(100);  // "Acquired"
17}  // "Released" - destructor called
18
19// Virtual destructor for polymorphism
20class Base {
21public:
22    virtual ~Base() {
23        cout << "Base destroyed" << endl;
24    }
25};
26
27class Derived : public Base {
28    int* extra;
29public:
30    Derived() : extra(new int[10]) {}
31    ~Derived() override {
32        delete[] extra;
33        cout << "Derived destroyed" << endl;
34    }
35};
36
37Base* b = new Derived();
38delete b;  // Both destructors called correctly
39
40// Rule of Five (C++11)
41// If you define one of these, define all:
42// - Destructor
43// - Copy constructor
44// - Copy assignment
45// - Move constructor
46// - Move assignment

AI Tutor

Ask about the topic

Sign in Required

Please sign in to use the AI tutor

Sign In