C++ में Destructor क्या है उसकी संपूर्ण जानकारी Practical सहित
What is Destructor in C++ in Hindi
C++, में Destructor एक Class का विशेष Member function है जो उस समय Execute होता है जब उस Class के कोई Object को खत्म या समाप्त किया जाता है या वह Scope से बाहर चला जाता है।
इसका नाम Class जैसा ही है लेकिन इसके सामने ~ (tilde) लगा दिया जाता है।
Destructor कोई Arguments नही लेता और न ही कोई value return करता है।
इसका मुख्य कार्य सफाई करना है जैसे Memory को free करना, Object द्वारा
उपयोग की जाने वाली Files बंद करना।यह Memory leak और अन्य समस्याओं को रोकने में मदद करता है।
Syntax for Destructor in C++
~ClassName();
Example:
~Student();
Characteristics of Destructor in C++ in Hindi
Destructor की निम्न विशेषताएं होती है
1) जब Object समाप्त हो जाते हैं या उसकी जरुरत नहीं रहती तब Destrcutor function स्वत: ही Call होते हैं।
2) जब Object समाप्त हो जाता है तब यह Memory को waste होने से बचाता है।
3) Destructor कोई भी Value return नहीं करते और न ही उनके पास कोई Parameters होते हैं।
4) ये inherit तथा overload नही किए जा सकते है।
5) ये Virtual हो सकतें है।
6) ये Static नही हो सकते।
7) एक Destructor member function दूसरे member functions को Call कर सकते हैं।
8) ये Class के अंदर तथा बाहर Define हो सकते हैं।
9) यह सुनिश्चित करता है कि files, connections, अन्य resources सही ढंग से बंद किया गया है।
10) एक Class के केवल एक ही Destructor हो सकते है, अर्थात एक Class मे कई Destructor की अनुमति नहीं है।
Why we need Destructor in C++ in Hindi- हमे Destructor की जरुरत क्यों है?
C++, में Destructors, Resources को manage करने और और एक Object को जब उसकी जरूरत नहीं होती,
समाप्त करने के लिए महत्वपूर्ण है।
ये Resources जैसे like memory, file handles, और network connections जिसे एक Object द्वारा Use किया गया हो, उन्हे मुक्त करने के लिए मदद करता है।
बिना Destructor, के यदि इन Resources को सही तरीके से खाली न किया जाए तो यह Memory leak या अन्य समस्या पैदा कर सकता है।
Destructors, Files को close करने, या locks को मुक्त करने का भी कार्य करता है, जो Aplications को सुचारू रूप से चलाने में मदद करता है
जब कोई Object उपयोग में नहीं रहती है तो उन्हें स्वचालित रूप से Call किया जाता है, जिससे यह सुनिश्चित होता है कि सब कुछ सही ढंग से साफ हो गया है। यह Resources को leak होने से रोकता है तथा चीजों को कुशलतापूर्वक चालू रखता है।
Program for Destructor
#include<iostream>
using namespace std;
class Student{
public:
Student (){
cout<<"Constructor is executed:"<<endl;
}
~Student (){
cout<<"Destructor is executed:"<<endl;
}
};
int main(){
//Creation of objects
Student s1,s2;
return 0;
}
Output:
Constructor is executed:
Constructor is executed:
Destructor is executed:
Destructor is executed:
Explanations:
ऊपर Program में Student नाम से एक Class define किया गया है जिसमे दो Member functions अर्थात एक Student() नाम से Constructor तथा ~Student() Destructor define किया गया है।
Student class के Objects (s1,s2) के निर्माण के समय Student() Constructor, call होगा तथा इन Object के समाप्त होने पर ~Student() Destructor, call होगा
main function में Student class के दो Objects s1 तथा s2 बनाए जाते जैसे ही ये दो Objects का निर्माण होता है, Constructors दो बार Call होता है और जैसे ही ये Objects समाप्त होता है ये Destructor दो बार Call होता है।
Differences between Constructor and Destructor in Hindi
1)
Constructor:
यह नए Object के बनने पर स्वत: ही Call होता है
Destructor:
जब Object को समाप्त किया जाता है उस समय यह Call होता है।
2)
Constructor:
Class के समान इसका नाम है।
Destructor:
इसका नाम भी Class नाम के समान है लेकिन इसके सामने एक tilde (`~`) लगा होता है।
3)
Constructor:
Object को Initialize करने के लिए parameters ले सकता है
Destructor:
यह पी नही लेता है।
4)
Constructor:
यह कोई Value return नहीं करता है Destructor:
यह भी कोई Value return नहीं करता है
5)
Constructor:
आपके पास विभिन्न parameters वाले कई constructors हो सकते हैं।
Destructor:
आपके पास केवल एक Destructor हो सकते हैं
6)
Constructor:
जब एक Object का निर्माण होता हैं तब यह स्वत: ही Execute होता है।Destructor:
जब एक Object को समाप्त किया जाता है तब यह स्वत: ही Execute होता है।
7)
Constructor:
Derived class constructors के पहले Base class constructors run होता है
Destructor:
Base class constructors के पहले Derived class constructors run होता है
8)
Constructor:
इसका Use, resources को set up करने और Object को initialize करने मे होता है।
Destructor:
इसका Use resources को खाली करने और सफाई करने में होता है।
0 टिप्पणियाँ