मैंने अभी सी ++ निर्माण के बारे में सीखा है जिसे "प्लेसमेंट न्यू" कहा जाता है। यह आपको वास्तव में नियंत्रित करने की अनुमति देता है जहां एक सूचक सूचक में इंगित करता है। यह इस तरह दिखता है:सी ++ निर्माण "प्लेसमेंट नया" के उपयोग क्या हैं?
#include <new> // Must #include this to use "placement new"
#include "Fred.h" // Declaration of class Fred
void someCode()
{
char memory[sizeof(Fred)];
void* place = memory;
Fred* f = new(place) Fred(); // Create a pointer to a Fred(),
// stored at "place"
// The pointers f and place will be equal
...
}
(उदाहरण C++ FAQ Lite से)
इस उदाहरण में, फ्रेड की this
सूचक place
के बराबर हो जाएगा।
मैंने इसे एक बार या दो बार हमारी टीम के कोड में उपयोग किया है। आपके अनुभव में, यह निर्माण क्या सक्षम बनाता है? क्या अन्य पॉइंटर भाषाओं में समान संरचनाएं होती हैं? मेरे लिए, यह फोरट्रान में equivalence
की याद दिलाता है, जो स्मृति में समान स्थान पर कब्जा करने के लिए अलग-अलग चर की अनुमति देता है।
आप उस पर विस्तृत कर सकते हैं? पेजिंग के लिए उपयोगी? या वापस पेजिंग के लिए उपयोगी है? मैं पेजिंग को वापस देखता हूं, पेजिंग आउट की कल्पना नहीं करता हूं। – ApplePieIsGood