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

सी ++ में प्लेसमेंट नया ऑपरेटर

इस खंड में हम देखेंगे कि 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

  1. क्या है ?-->? सी ++ में ऑपरेटर?

    C++ में ऐसा कोई ऑपरेटर नहीं है। कभी-कभी, हमें रैपर प्रकार बनाने की आवश्यकता होती है। उदाहरण के लिए, unique_ptr, shared_ptr, वैकल्पिक और समान जैसे प्रकार। आम तौर पर, इन प्रकारों में एक एक्सेसर सदस्य फ़ंक्शन होता है जिसे .get कहा जाता है, लेकिन वे ऑपरेटर को भी प्रदान करते हैं जो कि सामान्य पॉइंटर्स के

  1. C++ में एरो ऑपरेटर क्या है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में किसी वर्ग के सदस्यों तक पहुंचने के लिए किया जाता है। वे बस विभिन्न परिदृश्यों में उपयोग किए जाते हैं। सी ++ में, वर्ग, संरचना, या संघ के रूप में घोषित प्रकारों को वर्ग प्रकार माना जाता है। तो निम्नलिखित उन दोनों को संदर्भित करता है। a.b का उपयोग केवल तभी किय

  1. C++ . में यूनरी ऑपरेटर

    यूनरी ऑपरेटर वह ऑपरेटर होता है जो एक नया मान उत्पन्न करने के लिए एकल ऑपरेंड पर कार्य करता है। यूनरी ऑपरेटर इस प्रकार हैं: ऑपरेटर्स विवरण Indirection ऑपरेटर (*) यह एक पॉइंटर वेरिएबल पर काम करता है और पॉइंटर एड्रेस पर मान के बराबर एक एल-वैल्यू देता है। इसे पॉइंटर को डेरेफ्रेंसिंग कहा जाता है।