ऑब्जेक्ट्स को इंस्टेंटिएट करना: नए के साथ या उसके बिना
सी में ऑब्जेक्ट बनाते समय, प्रोग्रामर या तो "नए" ऑपरेटर का उपयोग कर सकते हैं या उन्हें सीधे इंस्टेंटिएट कर सकते हैं इसके बिना. जबकि दोनों दृष्टिकोण ऑब्जेक्ट बनाते हैं, वे कई प्रमुख पहलुओं में भिन्न होते हैं। यह आम तौर पर स्टैक पर किया जाता है और इसके परिणामस्वरूप स्वचालित जीवनकाल वाला ऑब्जेक्ट प्राप्त होता है। ऑब्जेक्ट परिभाषित दायरे के भीतर स्वचालित रूप से बनाया और नष्ट किया जाता है।
उदाहरण के लिए:समय टी(12, 0, 0); // t एक टाइम ऑब्जेक्ट है
उपरोक्त कोड में, "टाइम" ऑब्जेक्ट "टी" स्टैक पर बनाया गया है और इसका जीवनकाल वर्तमान दायरे से जुड़ा हुआ है।
NewTime t(12, 0, 0); // t is a Time object
किसी ऑब्जेक्ट को इंस्टेंट करने के लिए "new" का उपयोग करने से ढेर पर गतिशील रूप से इसके लिए मेमोरी आवंटित हो जाती है। यह वस्तु को उसके जीवनकाल समाप्त होने पर स्पष्ट रूप से बनाने और नष्ट करने की अनुमति देता है। पॉइंटर "टी" ऑब्जेक्ट के ढेर पते को संग्रहीत करता है।
उदाहरण के लिए:समय* टी = नया समय(12, 0, 0); // टी एक गतिशील रूप से आवंटित टाइम ऑब्जेक्ट के लिए एक सूचक है
यहां, सूचक "टी" को नव निर्मित "टाइम" ऑब्जेक्ट का ढेर पता सौंपा गया है। ऑब्जेक्ट का जीवनकाल दायरे से स्वतंत्र है और तब तक बना रहता है जब तक कि इसकी मेमोरी को खाली करने के लिए "डिलीट" ऑपरेटर का उपयोग नहीं किया जाता है।
मुख्य अंतरTime t(12, 0, 0); // t is a Time object
मेमोरी आवंटन : "नए" के बिना बनाई गई वस्तुएं स्टैक पर मेमोरी आवंटित करती हैं, जबकि "नया" स्टैक पर मेमोरी आवंटित करता है ढेर।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3