इस खंड में हम देखेंगे कि C++ में प्लेसमेंट नया ऑपरेटर क्या है। यह प्लेसमेंट नया, नए ऑपरेटर का एक और रूपांतर है। सामान्य नया ऑपरेटर दो काम करता है। यह स्मृति आवंटित करता है, और फिर आवंटित स्मृति में एक वस्तु का निर्माण करता है।
नया ऑपरेटर ढेर खंड में स्मृति आवंटित करता है और वहां वस्तुओं का निर्माण करता है। लेकिन प्लेसमेंट न्यू ऑपरेटर के लिए, यह दिए गए पते पर ऑब्जेक्ट बनाता है। मेमोरी को डीलोकेट करने के लिए, हम डिलीट कीवर्ड का उपयोग कर सकते हैं यदि मेमोरी को नए ऑपरेटर का उपयोग करके आवंटित किया जाता है। लेकिन नए प्लेसमेंट के लिए कोई प्लेसमेंट डिलीट फीचर नहीं है।
तो संक्षेप में, प्लेसमेंट नया आपको किसी ऑब्जेक्ट को स्मृति पर "निर्माण" करने की अनुमति देता है जो पहले से ही किसी दिए गए चर के लिए आवंटित किया गया है। यह अनुकूलन के लिए उपयोगी है क्योंकि यह उसी मेमोरी को पुन:आवंटित और पुन:उपयोग करने के लिए तेज़ है जो इसे पहले से ही असाइन किया गया है। इसका उपयोग इस प्रकार किया जा सकता है:
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