Q1. Class, Constructors & Destructor in C++
Question:
Write a program to demonstrate class, use of constructor, constructor overloading and destructor.
My Approach
MCA course me hum logon ne C++ me OOP concepts kaafi detail me padha hai. Constructor aur destructor ka use real life applications me bahut important hota hai, jaise object initialization aur memory clean-up.
Maine yaha ek Student management ka real-time scenario liya hai, kyunki mujhe khud NMU (KBC North Maharashtra University) ke MCA course me kaafi jagah Student related system banana pada hai (admission form, marksheet handling, etc).
Program Code
File Name: constructor_demo.cpp
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int age;
float marks;
public:
// Default constructor
Student() {
name = "Unknown";
age = 0;
marks = 0.0;
cout << "Default constructor called" << endl;
}
// Parameterized constructor
Student(string n, int a, float m) {
name = n;
age = a;
marks = m;
cout << "Parameterized constructor called" << endl;
}
// Constructor overloading (single parameter)
Student(string n) {
name = n;
age = 18; // default assumption
marks = 50; // default marks
cout << "Single parameter constructor called" << endl;
}
// Destructor
~Student() {
cout << "Destructor called for: " << name << endl;
}
void display() {
cout << "Name: " << name << ", Age: " << age << ", Marks: " << marks << endl;
}
};
int main() {
// Using default constructor
Student s1;
s1.display();
// Using parameterized constructor (real data)
Student s2("Intesab Ansari", 24, 92.5);
s2.display();
// Using overloaded constructor
Student s3("Ali");
s3.display();
return 0;
}Sample Output
Default constructor called
Name: Unknown, Age: 0, Marks: 0
Parameterized constructor called
Name: Intesab Ansari, Age: 24, Marks: 92.5
Single parameter constructor called
Name: Ali, Age: 18, Marks: 50
Destructor called for: Ali
Destructor called for: Intesab Ansari
Destructor called for: UnknownExplanation
- Default Constructor → Jab koi parameter nahi dete, tab default values assign hoti hain.
- Parameterized Constructor → Hamne apna naam “Intesab Ansari”, age aur marks diye, jo ki ek real student record ko dikhata hai.
- Constructor Overloading → Yaha sirf naam diya gaya hai, age & marks automatically default values le lete hain.
- Destructor → Jab object scope ke bahar chala jata hai, tab automatically call hota hai.
Real Time Relevance
- Admission form me jab student ka record create hota hai, constructor automatically initialize karta hai.
- Jab system band hota hai ya record delete hota hai, destructor memory clean-up karta hai.
- Constructor overloading ka use alag-alag scenarios ke liye hota hai jaise –
- Sirf naam enter karke demo student create karna
- Full detail ke sath complete student record create karna
Conclusion
Ye program real-time student record ke example se class, constructors, constructor overloading aur destructor ke concepts ko clear karta hai.
Mujhe personally ye assignment bana kar samajh aaya ki C++ ka object lifecycle kitna powerful hai aur ye real life software me kaise use hota hai.
👤 Submitted by:
Intesab Ansari
MCA Student, NMU University
Portfolio: intesab.live