“हेलो दोस्तों! इस पोस्ट में हम ‘C++ प्रोग्रामिंग’ में उपयोग होने वाले Constructor और Destructor के बारे में सीखेंगे। साथ ही, Constructor और Destructor का उपयोग और महत्व के बारे में जानेंगे। C++ में कंस्ट्रक्टर और डिस्ट्रक्टर के मुख्य तत्व होते हैं। Constructors और Destructor प्रोग्राम को अधिक स्थिर और कुशल बनाने के लिए आवश्यक होते हैं। आइए इनको विस्तार से समझते हैं:
Constructor क्या है?
Constructor एक विशेष प्रकार का function है जो किसी objects के बनते समय अपने आप कॉल होता है। इसका उपयोग objects के data member को आरंभिक (initialize) करने के लिए किया जाता है।
Constructor की विशेषताएं:
- Constructor का नाम Class के नाम के समान होता है।
- Constructor का कोई Return Type नहीं होता, यहां तक कि
void
भी नहीं। - Constructor अपने आप तब Call होता है जब Class का कोई object बनता है।
Constructor के प्रकार
C++ में मुख्यतः तीन प्रकार के Constructors होते हैं:
- Default Constructor
- Parameterized Constructor
- Copy Constructor
1. Default Constructor
Default Constructor एक ऐसा Constructor है, जो कोई parameter नहीं लेता है। यह तब call होता है जब कोई objects बिना किसी parameter के बनाया जाता है।
Example:-
cpp (computersciencemcq.com)
#include <iostream>
using namespace std;
class Example {
public:
Example() { // Default Constructor
cout << "Default Constructor कॉल हुआ।" << endl;
}
};
int main() {
Example obj; // Default Constructor अपने आप कॉल होगा
return 0;
}
output:-
Default Constructor कॉल हुआ।
इस उदाहरण में, Example
क्लास का Default Constructor तब कॉल होता है जब obj
नाम का object बनाया जाता है।
2. Parameterized Constructor
वह Constructor है, जो Parameter लेता है। इसका उपयोग तब किया जाता है जब हमें object को विभिन्न Value के साथ initialize करना हो।
Example:-
cpp (computersciencemcq.com)
#include <iostream>
using namespace std;
class Rect {
private:
int width, height;
public:
Rect(int w, int h)
{
width = w;
height = h;
}
int getArea() {
return width * height;
}
};
int main() {
Rect r1(5, 10);
cout << "आयत का क्षेत्रफल: " << r1.getArea() << endl;
return 0;
}
Output:-
आयत का क्षेत्रफल: 50
इस उदाहरण में, Rectangle
क्लास का Parameterized Constructor rect
ऑब्जेक्ट के लिए width
और height
को इनिशियलाइज करता है।
3. Copy Constructor
वह Constructor होता है जो किसी object को दूसरे objecct में Copy करने के लिए उपयोग होता है। यह एक object के Data Member की Value को दूसरे object में Copy करता है।
Copy Constructor का स्वरूप:
ClassName (const ClassName &old_obj);
Example:-
cpp (computersciencemcq.com)
#include <iostream>
using namespace std;
class Number {
private:
int value;
public:
Number(int v) { // Parameterized Constructor
value = v;
}
Number(const Number &obj) { // Copy Constructor
value = obj.value;
}
int getValue() {
return value;
}
};
int main() {
Number num1(5); // Parameterized Constructor
Number num2 = num1;
cout << "num1 की वैल्यू: " << num1.getValue() << endl;
cout << "num2 की वैल्यू: " << num2.getValue() << endl;
return 0;
}
Output:-
num1 की वैल्यू: 5
num2 की वैल्यू: 5
यहां, num1
की वैल्यू num2
में Copy Constructor के माध्यम से कॉपी हो जाती है।
Destructor क्या है?
Destructor एक विशेष प्रकार का function है जो object के अंत में अपने आप call होता है। इसका उपयोग ऑब्जेक्ट के साथ जुड़े संसाधनों (resources) को मुक्त करने के लिए किया जाता है
Destructor की विशेषताएं:
- Destructor का नाम Class के नाम से पहले
~
Symbol (tilde) जोड़कर बनता है। - Destructor का कोई Return Type नहीं होता।
- Destructor को Parameter नहीं दिया जा सकता (यह Non-Parameterized होता है)।
Destructor का Syntax:
cpp
~ClassName() {
// Destructor का कोड
}
Example:-
cpp (computersciencemcq.com)
#include <iostream>
using namespace std;
class Demo {
public:
Demo() {
cout << "Constructor कॉल हुआ।" << endl;
}
~Demo() {
cout << "Destructor कॉल हुआ।" << endl;
}
};
int main() {
Demo obj; // Constructor अपने आप कॉल होगा
return 0; // जब main() समाप्त होता है, तो Destructor अपने आप कॉल होगा
}
Output:-
Constructor कॉल हुआ।
Destructor कॉल हुआ।
इस उदाहरण में, जैसे ही obj
का जीवनचक्र समाप्त होता है (प्रोग्राम का अंत होता है), Destructor अपने आप कॉल हो जाता है।
Destructor का महत्व
- मेमोरी की बचत: Destructor का उपयोग dynamically allocated memory को Delete करने के लिए किया जाता है। इससे मेमोरी लीकेज की संभावना कम हो जाती है।
- संसाधनों की सफाई: Destructor उन संसाधनों को रिलीज़ करता है, जो ऑब्जेक्ट के लिए इस्तेमाल हुए थे, जैसे कि File Handling, Network Connection आदि।
- प्रोग्राम की स्थिरता: Destructor से संसाधनों को मुक्त करने पर प्रोग्राम अधिक स्थिर और विश्वसनीय बनता है।
Constructor और Destructor का उपयोग
किसी क्लास में Constructors और Destructor का उपयोग ऑब्जेक्ट के निर्माण और उसे नष्ट करने के लिए आवश्यक होता है। Constructors का उपयोग data memebrs को initialize करने के लिए किया जाता है, जबकि Destructor ऑब्जेक्ट को नष्ट करने और संसाधनों को रिलीज़ करने में सहायक होता है।
संक्षेप में
- Constructors: ऑब्जेक्ट के बनते समय कॉल होते हैं, और ये विभिन्न प्रकार के होते हैं – Default, Parameterized, और Copy Constructor।
- Destructor: ऑब्जेक्ट के नष्ट होने के समय कॉल होता है और इसे संसाधन मुक्त करने के लिए उपयोग किया जाता है।
Constructors और Destructor प्रोग्राम को अधिक स्थिर और कुशल बनाने के लिए आवश्यक होते हैं।