Constructors and Destructors in C++

By Shakib Ansari | Date: Mon, Jun 2, 2025

Object-Oriented Programming ka ek important concept hota hai which is "Constructor aur Destructor". Ye dono special functions hote hain jo object banne aur delete hone par automatically kaam karte hain.

1. Constructor Kya Hota Hai?

Constructor ek special member function hota hai jo object create hote hi automatically call hota hai. Iska naam class ke naam jaisa hota hai aur iska return type nahi hota.

Features:

  • Class ke naam jaisa hi naam hota hai.
  • Return type nahi hota (na void, na kuch aur).
  • Automatically call hota hai jab object banta hai.

2. Types of Constructors in C++

a. Default Constructor

Ye constructor bina kisi parameter ke hota hai.

class Demo {
public:
    Demo() {
        cout << "Default constructor called!" << endl;
    }
};

b. Parameterized Constructor

Jab constructor parameters leta hai to use parameterized constructor kehte hain.

class Student {
    int roll;
public:
    Student(int r) {
        roll = r;
        cout << "Roll number: " << roll << endl;
    }
};

c. Copy Constructor

Copy constructor ka use ek object ko doosre object se copy karne ke liye hota hai.

class Book {
    string name;
public:
    Book(string n) {
        name = n;
    }

    Book(const Book &b) {
        name = b.name;
    }

    void show() {
        cout << "Book name: " << name << endl;
    }
};

3. Constructor Overloading

C++ mein aap ek se zyada constructors bana sakte ho (with different parameters) – isse constructor overloading kehte hain.

class Box {
public:
    Box() {
        cout << "Default Constructor" << endl;
    }

    Box(int l) {
        cout << "Parameterized Constructor with 1 parameter: " << l << endl;
    }

    Box(int l, int b) {
        cout << "Parameterized Constructor with 2 parameters: " << l << ", " << b << endl;
    }
};
Constructor overloading ek tarah ka function overloading hi hota hai.

4. Destructor Kya Hota Hai?

Destructor bhi ek special function hota hai jo object destroy hone ke time pe call hota hai. Iska kaam hota hai memory clean-up ya resource release karna.

Features:

  • Class ke naam se same hota hai, lekin ~ (tilde) laga hota hai.
  • Return type nahi hota.
  • Parameters bhi nahi hote.
  • Automatically call hota hai jab object destroy hota hai.

Example:

class Temp {
public:
    Temp() {
        cout << "Constructor called" << endl;
    }

    ~Temp() {
        cout << "Destructor called" << endl;
    }
};

Program Example (Sab kuch ek saath):

#include <iostream>
using namespace std;

class Person {
    string name;
public:
    Person() {
        name = "Default";
        cout << "Default Constructor: " << name << endl;
    }

    Person(string n) {
        name = n;
        cout << "Parameterized Constructor: " << name << endl;
    }

    Person(const Person &p) {
        name = p.name;
        cout << "Copy Constructor: " << name << endl;
    }

    ~Person() {
        cout << "Destructor called for: " << name << endl;
    }
};

int main() {
    Person p1;
    Person p2("Shakib");
    Person p3 = p2;
    return 0;
}

Output:

Default Constructor: Default  
Parameterized Constructor: Shakib  
Copy Constructor: Shakib  
Destructor called for: Shakib  
Destructor called for: Shakib  
Destructor called for: Default  

Summary (Simplified):

  • Constructor: Object banate hi call hota hai.
  • Types:
  • Default Constructor – No parameters
  • Parameterized Constructor – Takes values
  • Copy Constructor – Copies another object
  • Destructor: Object destroy hone par call hota hai.
  • Constructor Overloading: Multiple constructors with different parameter lists.

Practice Questions:

  • Ek Employee class banao with default and parameterized constructors.
  • Ek Laptop class banao jisme destructor resource free kare.
About the Author

Hi, I'm Shakib Ansari, Founder and CEO of BeyondMan. I'm a highly adaptive developer who quickly learns new programming languages and delivers innovative solutions with passion and precision.

Shakib Ansari
Programming

Comments