मुख्य अंतर – कंस्ट्रक्टर बनाम डिस्ट्रक्टर
अधिकांश प्रोग्रामिंग भाषाएं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) का समर्थन करती हैं। यह प्रतिमान है जो वस्तुओं का उपयोग करके किसी सॉफ़्टवेयर या प्रोग्राम को मॉडल करने में मदद करता है। OOP उत्पादकता और रखरखाव में सुधार करता है। ओओपी में सब कुछ एक वस्तु के रूप में माना जाता है। वस्तुओं को कक्षाओं का उपयोग करके बनाया या त्वरित किया जाता है। ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में कंस्ट्रक्टर और डिस्ट्रक्टर सामान्य शब्द हैं। यह लेख एक निर्माता और एक विध्वंसक के बीच के अंतर पर चर्चा करता है। एक कंस्ट्रक्टर और एक डिस्ट्रक्टर एक क्लास में स्पेशल मेंबर फंक्शन होते हैं। एक कंस्ट्रक्टर और डिस्ट्रक्टर का नाम क्लास के समान होता है, लेकिन डिस्ट्रक्टर के पास एक टिल्ड (~) चिन्ह होता है।एक कंस्ट्रक्टर और डिस्ट्रक्टर के बीच महत्वपूर्ण अंतर यह है कि एक कंस्ट्रक्टर का उपयोग किसी ऑब्जेक्ट को मेमोरी आवंटित करने के लिए किया जाता है जबकि एक डिस्ट्रक्टर का उपयोग किसी ऑब्जेक्ट की मेमोरी को डीलोकेट करने के लिए किया जाता है।
एक कंस्ट्रक्टर क्या है?
एक कंस्ट्रक्टर किसी ऑब्जेक्ट को मेमोरी आवंटित करने के लिए क्लास में एक विशेष सदस्य फ़ंक्शन है। इसका उपयोग डेटा सदस्यों के लिए मूल्य प्रदान करने के लिए किया जा सकता है। जब ऑब्जेक्ट बनाया जाता है तो कंस्ट्रक्टर को बुलाया जाता है। इसका नाम वर्ग के नाम के समान है। एक कंस्ट्रक्टर कोई मूल्य नहीं लौटाता है। इसलिए, इसमें वापसी प्रकार शामिल नहीं है। एक कंस्ट्रक्टर भी मापदंडों को स्वीकार कर सकता है। पैरामीटर वाले कंस्ट्रक्टर को पैरामीटराइज्ड कंस्ट्रक्टर के रूप में जाना जाता है।
कन्स्ट्रक्टर का एक उदाहरण इस प्रकार है।
सार्वजनिक वर्ग आयत{
इंट लंबाई, चौड़ाई;
सार्वजनिक आयत(इंट पी, इंट क्यू){
लंबाई=पी;
चौड़ाई=क्यू;
}
पब्लिक इंट कैलकुलेट एरिया (){
रिटर्न (लंबाई चौड़ाई);
}
}
उपरोक्त कोड के अनुसार, कंस्ट्रक्टर का वही नाम है जो क्लास का नाम है। कंस्ट्रक्टर आयत दो मापदंडों को स्वीकार करता है। वे पी और क्यू हैं। पूर्णांक मान p लंबाई को असाइन किया गया है। पूर्णांक मान q चौड़ाई को असाइन किया गया है। कैलकुलेट एरिया में, आयत का क्षेत्रफल ज्ञात करने के लिए लंबाई और चौड़ाई के गुणन की गणना की जाती है। मुख्य कार्यक्रम में, प्रोग्रामर आयत प्रकार की वस्तु बना सकता है और तर्क पारित कर सकता है। जैसे आयत आयत1=नया आयत(2, 3)। फिर, पैरामीटरयुक्त कंस्ट्रक्टर को कॉल किया जाता है और लंबाई और चौड़ाई के लिए मान निर्दिष्ट करता है।
चित्र 01: कंस्ट्रक्टर और डिस्ट्रक्टर
जब बिना किसी पैरामीटर के कंस्ट्रक्टर होता है, तो उसे डिफॉल्ट कंस्ट्रक्टर कहा जाता है।यदि प्रोग्रामर कंस्ट्रक्टर को परिभाषित नहीं करता है, तो डिफ़ॉल्ट कंस्ट्रक्टर को लागू किया जाएगा। यदि छात्र के रूप में कोई वर्ग है और जब प्रोग्रामर छात्र प्रकार का ऑब्जेक्ट बनाता है, तो डिफ़ॉल्ट कंस्ट्रक्टर को कहा जाता है। जैसे छात्र s1=नया छात्र (); एक वर्ग में विभिन्न मापदंडों और विभिन्न डेटा प्रकारों के साथ कई कंस्ट्रक्टर हो सकते हैं। उपयुक्त कंस्ट्रक्टर को तदनुसार बुलाया जा सकता है। इसलिए, कंस्ट्रक्टर्स को ओवरलोड किया जा सकता है।
विनाशक क्या है?
डिस्ट्रक्टर क्लास में एक स्पेशल मेंबर फंक्शन होता है। इसका उपयोग कंस्ट्रक्टर द्वारा बनाई गई वस्तु के लिए मेमोरी को डी-आवंटित करने के लिए किया जाता है। जब वस्तु नष्ट हो जाती है तो विनाशक को बुलाया जाता है। यह सफाई भंडारण करता है जिसकी अब आवश्यकता नहीं है। कंस्ट्रक्टर की तरह, डिस्ट्रक्टर का भी क्लास के समान नाम होता है। इसमें एक टिल्ड (~) चिन्ह भी होता है।
विनाशक कोई मूल्य नहीं लौटाता। एक कंस्ट्रक्टर के विपरीत, डिस्ट्रक्टर किसी भी पैरामीटर को स्वीकार नहीं करता है। तो, विनाशक ओवरलोडिंग का समर्थन नहीं करता है।विनाशक घोषित करना एक अच्छा प्रोग्रामिंग अभ्यास माना जाता है क्योंकि यह स्मृति स्थान को मुक्त करता है और उस स्थान का उपयोग कुछ अन्य वस्तुओं को संग्रहीत करने के लिए किया जा सकता है। विनाशक का सिंटैक्स ~className() {} के समान है। जैसे ~ आयत () { }; एक वर्ग में केवल एक ही विध्वंसक हो सकता है।
कंस्ट्रक्टर और डिस्ट्रक्टर में क्या समानताएं हैं?
- कन्स्ट्रक्टर और डिस्ट्रक्टर दोनों वस्तुओं से जुड़े हैं।
- कंस्ट्रक्टर और डिस्ट्रक्टर दोनों कोई वैल्यू नहीं लौटाते।
- कंस्ट्रक्टर और डिस्ट्रक्टर दोनों को स्वचालित रूप से बुलाया जाता है।
कंस्ट्रक्टर और डिस्ट्रक्टर में क्या अंतर है?
कंस्ट्रक्टर बनाम डिस्ट्रक्टर |
|
एक कंस्ट्रक्टर क्लास में एक विशेष सदस्य होता है जिसका उपयोग किसी ऑब्जेक्ट को मेमोरी आवंटित करने के लिए किया जाता है। | डिस्ट्रक्टर क्लास का एक विशेष सदस्य होता है जिसका उपयोग किसी ऑब्जेक्ट की मेमोरी को डीलोकेट करने के लिए किया जाता है। |
आह्वान करने की विधि | |
ऑब्जेक्ट बनाते समय कंस्ट्रक्टर को बुलाया जाता है। | वस्तु के नष्ट होने या नष्ट होने पर विनाशक को कहा जाता है। |
उपयोग | |
ऑब्जेक्ट्स के लिए मेमोरी आवंटित करने के लिए एक कंस्ट्रक्टर का उपयोग किया जाता है। | वस्तुओं के लिए स्मृति को नष्ट करने के लिए एक विध्वंसक का उपयोग किया जाता है। |
पैरामीटर | |
एक कंस्ट्रक्टर पैरामीटर स्वीकार करता है। | विनाशक पैरामीटर स्वीकार नहीं करता है। |
कंस्ट्रक्टर्स और डिस्ट्रक्टर्स की संख्या | |
विभिन्न प्रकार के मापदंडों और विभिन्न प्रकार के मापदंडों के साथ कई कंस्ट्रक्टर हो सकते हैं। | कक्षा में एकल विध्वंसक हो सकता है। |
निष्पादन गति | |
एक कंस्ट्रक्टर का नाम वही है जो क्लास का नाम है। | एक विध्वंसक का नाम टिल्ड (~) प्रतीक के साथ वर्ग नाम के समान है। |
ओवरलोडिंग | |
एक कंस्ट्रक्टर को ओवरलोड किया जा सकता है। | विनाशक को अतिभारित नहीं किया जा सकता। |
सारांश – कंस्ट्रक्टर बनाम डिस्ट्रक्टर
ओओपी सॉफ्टवेयर विकास में एक सामान्य प्रतिमान है। यह एक जटिल परियोजना को सरल बना सकता है। OOP में एक कंस्ट्रक्टर और एक डिस्ट्रक्टर का उपयोग किया जाता है। एक कंस्ट्रक्टर और डिस्ट्रक्टर का नाम क्लास के समान होता है, लेकिन डिस्ट्रक्टर के पास ~ साइन होता है।एक कंस्ट्रक्टर और डिस्ट्रक्टर के बीच का अंतर यह है कि एक कंस्ट्रक्टर का उपयोग किसी ऑब्जेक्ट को मेमोरी आवंटित करने के लिए किया जाता है जबकि एक डिस्ट्रक्टर का उपयोग किसी ऑब्जेक्ट की मेमोरी को डीलोकेट करने के लिए किया जाता है।
कंस्ट्रक्टर बनाम डिस्ट्रक्टर का पीडीएफ डाउनलोड करें
आप इस लेख का पीडीएफ संस्करण डाउनलोड कर सकते हैं और उद्धरण नोट के अनुसार इसे ऑफ़लाइन उद्देश्यों के लिए उपयोग कर सकते हैं। कृपया पीडीएफ संस्करण यहां डाउनलोड करें: कंस्ट्रक्टर और डिस्ट्रक्टर के बीच अंतर