Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में "प्लेसमेंट न्यू" के क्या उपयोग हैं?


इस सेक्शन में हम देखेंगे कि C++ में प्लेसमेंट न्यू ऑपरेटर क्या है। यह प्लेसमेंट न्यू न्यू ऑपरेटर का एक और वेरिएशन है। नॉर्मल न्यू ऑपरेटर दो चीजें करता है। यह मेमोरी एलोकेट करता है, और फिर एलोकेटेड मेमोरी में एक ऑब्जेक्ट कंस्ट्रक्ट करता है।

न्यू ऑपरेटर हीप सेक्शन में मेमोरी एलोकेट करता है और वहां ऑब्जेक्ट्स कंस्ट्रक्ट करता है। लेकिन प्लेसमेंट न्यू ऑपरेटर के लिए, यह दिए गए एड्रेस पर ऑब्जेक्ट कंस्ट्रक्ट करता है। मेमोरी को डीएलोकेट करने के लिए, हम delete कीवर्ड का उपयोग कर सकते हैं यदि मेमोरी न्यू ऑपरेटर का उपयोग करके एलोकेट की गई है। लेकिन प्लेसमेंट न्यू के लिए कोई प्लेसमेंट डिलीट फीचर नहीं है।

संक्षेप में, प्लेसमेंट न्यू आपको एक ऐसे वेरिएबल पर पहले से एलोकेटेड मेमोरी पर "कंस्ट्रक्ट" करने की अनुमति देता है जिसे पहले ही असाइन किया गया है। यह ऑप्टिमाइजेशन के लिए उपयोगी है क्योंकि पहले से असाइन की गई उसी मेमोरी को रीएलोकेट न करके पुनः उपयोग करना तेज़ है। इसका उपयोग निम्नानुसार किया जा सकता है:

new (address) (type) initializer

हम एक एड्रेस निर्दिष्ट कर सकते हैं जहां हम दिए गए टाइप के नए ऑब्जेक्ट को कंस्ट्रक्ट करना चाहते हैं। उदाहरण के लिए।

उदाहरण कोड

#include<iostream> using namespace std; int main() { int a = 5; cout << "a = " << a << endl; cout << "&a = " << &a << endl; // Placement new changes the value of X to 100 int *m = new (&a) int(10); cout << "\nAfter using placement new:" << endl; cout << "a = " << a << endl; cout << "m = " << m << endl; cout << "&a = " << &a << endl; return 0; }

आउटपुट

a = 5 &a = 0x22fe34 After using placement new: a = 10 m = 0x22fe34 &a = 0x22fe34

  1. - C++ में टाइप क्वालिफायर्स क्या हैं?

    एक टाइप क्वालिफायर एक कीवर्ड है जिसे एक टाइप पर लागू किया जाता है, जिसके परिणामस्वरूप एक क्वालिफाइड टाइप प्राप्त होता है। उदाहरण के लिए, const int एक क्वालिफाइड टाइप है जो एक स्थिर इंटीजर को दर्शाता है, जबकि int संगत अनक्वालिफाइड टाइप है, बस एक इंटीजर। टाइप क्वालिफायर्स टाइप सिस्टम के माध्यम से एक म

  1. - C++ में कैरेक्टर लिटरल्स क्या हैं?

    एक कैरेक्टर लिटरल प्रोग्रामिंग में एक प्रकार का लिटरल है जो कंप्यूटर प्रोग्राम के सोर्स कोड के भीतर एक सिंगल कैरेक्टर के मान के प्रतिनिधित्व के लिए होता है। C++ में, एक कैरेक्टर लिटरल एक कॉन्स्टेंट कैरेक्टर से बना होता है। इसे सिंगल कोटेशन मार्क्स से घिरे कैरेक्टर द्वारा दर्शाया जाता है। कैरेक्टर ल

  1. - C++ की कौन सी विशेषताएं Java में नहीं हैं?

    परिचयकई विशेषताएं हैं जो C++ में देखी जा सकती हैं लेकिन Java में नहीं। उनमें से कुछ नीचे सूचीबद्ध हैं -Java में कोई अनसाइन्ड इंट विकल्प नहींJava में कोई डिस्ट्रक्टर नहीं और न ही delete क्योंकि गार्बेज कलेक्टर यह ऑपरेशन इसके लिए करता है।Java में कोई फ्रेंड क्लास या फ्रेंड फंक्शन नहीं।Java में कोई पॉइ