संक्षेप में, प्लेसमेंट new आपको किसी दिए गए वेरिएबल को पहले से अलोकेटेड मेमोरी पर "कंस्ट्रक्ट" करने की अनुमति देता है। यह ऑप्टिमाइजेशन के लिए उपयोगी है क्योंकि पहले से असाइन की गई उसी मेमोरी को पुनः उपयोग करना और पुनः अलोकेट न करना तेज़ होता है। इसका उपयोग इस प्रकार किया जा सकता है:
new (address) (type) initializer
हम एक एड्रेस निर्दिष्ट कर सकते हैं जहां हम दिए गए टाइप के नए ऑब्जेक्ट को कंस्ट्रक्ट करना चाहते हैं।
उदाहरण
#include<iostream> using namespace std; int main() { int a = 5; cout << "a = " << a << endl; cout << "&a = " << &a << endl; // प्लेसमेंट new X के मान को 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 = 0x60ff18
प्लेसमेंट new का उपयोग करने के बाद:
a = 10 m = 0x60ff18 &a = 0x60ff18