C++ कंस्ट्रक्टर्स पर साक्षात्कार प्रश्न
कन्स्ट्रक्टर क्या है?
एक निर्माता एक वर्ग का एक कार्य है जिसका वर्ग के समान नाम है। ऑब्जेक्ट के इनिशियलाइज़ेशन के समय कंस्ट्रक्टर को कॉल किया जाता है। कंस्ट्रक्टर तीन प्रकार के होते हैं -
- डिफ़ॉल्ट कंस्ट्रक्टर
- पैरामीटरेटेड कंस्ट्रक्टर
- कन्स्ट्रक्टर कॉपी करें
वाक्यविन्यास
class cl_name{ cl_name(){ //This is constructor.. } }
विनाशक क्या है?
एक विनाशक एक वर्ग की एक विधि है जिसका नाम वही है जो कक्षा के पहले tild ~ है प्रतीक। इसे कोड के अंत में कहा जाता है या जब वस्तु नष्ट हो जाती है या दायरे से बाहर हो जाती है।
वाक्यविन्यास
class cl_name{ ~ cl_name(){} //destructor }
कन्स्ट्रक्टर का क्या उपयोग है?
एक कंस्ट्रक्टर एक ऐसी विधि है जिसका नाम एक वर्ग के समान है। और एक कंस्ट्रक्टर का उपयोग ऑब्जेक्ट को इनिशियलाइज़ करना है जब इसे एक नए . का उपयोग करके बनाया जाता है कीवर्ड।
जब कोई ऑब्जेक्ट बनाया जाता है, तो वेरिएबल मेमोरी के आरंभिक भाग होते हैं और यदि कोई हो तो आधार मान होते हैं।
विनाशक का क्या उपयोग है?
एक विध्वंसक एक ऐसी विधि है जिसका नाम ~ प्रतीक से पहले के वर्ग के समान है। एक विध्वंसक का उपयोग स्मृति खंड को हटाने के लिए होता है, एक कोड वस्तु के दायरे से बाहर चला जाता है या हटाएं कीवर्ड का उपयोग करके हटा दिया जाता है ।
जब ऑब्जेक्ट हटा दिया जाता है तो विनाशक को बुलाया जाता है और ऑब्जेक्ट बनाए जाने पर बनाए गए सभी मेमोरी ब्लॉक को हटा देता है।
C++ में कंस्ट्रक्टर के निष्पादन का क्रम क्या है?
जब किसी वर्ग का ऑब्जेक्ट बनाया जाता है तो एक कंस्ट्रक्टर को आमंत्रित किया जाता है। जिस क्रम में एक कंस्ट्रक्टर को बुलाया जाता है वह वंशानुक्रम के पदानुक्रम के समान होता है। इसका मतलब है कि पहले बेस क्लास की वस्तु को बुलाया जाता है, फिर चाइल्ड क्लास की वस्तुओं को बुलाया जाता है और इसी तरह।
C++ में विनाशक निष्पादन का क्रम क्या है?
एक विध्वंसक को कंस्ट्रक्टर के रूप में उल्टे क्रम में बुलाया जाता है और जब क्लास की वस्तु को हटा दिया जाता है तो उसे बुलाया जाता है। जिस क्रम में एक विनाशक का आह्वान किया जाता है वह विरासत के पदानुक्रम के ठीक विपरीत होता है। इसका मतलब है कि पहले चाइल्ड क्लास की वस्तु नष्ट हो जाती है और फिर मूल वर्ग की वस्तुओं को नष्ट कर दिया जाता है।
अगर हम कोई अन्य कंस्ट्रक्टर बनाते हैं तो भी क्या डिफॉल्ट कंस्ट्रक्टर बनाया जाता है?
यदि कोई प्रोग्रामर किसी कंस्ट्रक्टर को स्पष्ट रूप से परिभाषित नहीं करता है, तो कंस्ट्रक्टर डिफ़ॉल्ट रूप से कंपाइलर द्वारा बनाए जाते हैं। अगर प्रोग्रामर कंस्ट्रक्टर को परिभाषित करता है तो कंपाइलर अपना काम करता है और इसे परिभाषित नहीं करता है।