शीर्षक मूल रूप से यह सब कहता है, मुझे आश्चर्य है कि जब एक सी ++ वर्ग के स्थिर सदस्य प्रारंभ होते हैं और जब वे दायरे से बाहर जाते हैं।सी ++ स्थैतिक सदस्य परिवर्तनीय दायरा
मुझे निम्न समस्या के लिए इसकी आवश्यकता है। मेरे पास कक्षा फू की कई वस्तुएं हैं और प्रत्येक ऑब्जेक्ट को किसी अन्य क्लास बार द्वारा encapsulated संसाधन तक पहुंच की आवश्यकता होती है। सिंक्रनाइज़ेशन कोई मुद्दा नहीं है, इसलिए मैं सभी ऑब्जेक्ट्स को एक ही बार उदाहरण साझा करना चाहता हूं।
मैं संदर्भ गणना के लिए एक सरल प्रबंधित सूचक का उपयोग कर रहा हूं। लेकिन जब यह होता है -
class Foo {
private:
static managed_pointer<Bar> staticBar;
public:
Foo() {
if(!staticBar)
staticBar = new Bar;
}
/*
* use staticBar in various non-static member functions
*/
};
managed_pointer<Bar> Foo::staticBar = NULL;
managed_pointer staticBar जैसे ही यह क्षेत्र से बाहर चला जाता है बार वस्तु को हटा देना चाहिए:
मैं निम्न कार्य कर सकते हैं? जब फू का आखिरी उदाहरण नष्ट हो जाता है? आवेदन निकास पर?
आपकी सलाह के लिए धन्यवाद!
ओह, टाइपो को ठीक करने के लिए धन्यवाद। – Pontomedon
फू का अंतिम उदाहरण तब नष्ट हो जाता है जब आप अंतिम उदाहरण को हटाते हैं या जब आपका प्रोग्राम मौजूद होता है। कक्षा के एक स्थिर सदस्य मौजूद होंगे इससे कोई फर्क नहीं पड़ता कि कक्षा के कितने उदाहरण हैं। – Gabi