यदि मैं एक स्थिर वस्तु में this
लेता हूं और इसे सिंगलटन ऑब्जेक्ट में वेक्टर में संग्रहीत करता हूं, तो क्या मैं प्रोग्राम के पूरे जीवनकाल के दौरान ऑब्जेक्ट पर पॉइंटर पॉइंट मान सकता हूं?एक स्थैतिक वस्तु का यह सूचक
7
A
उत्तर
2
सामान्य रूप से, आप यह नहीं मान सकते हैं, क्योंकि अलग-अलग अनुवाद इकाइयों में स्थैतिक वस्तु निर्माण का क्रम निर्दिष्ट नहीं है। इस मामले में यह काम करेंगे, क्योंकि वहाँ केवल एक अनुवाद इकाई:
#include <iostream>
#include <vector>
class A
{
A() = default;
A(int x) : test(x) {}
A * const get_this(void) {return this;}
static A staticA;
public:
static A * const get_static_this(void) {return staticA.get_this();}
int test;
};
A A::staticA(100);
class Singleton
{
Singleton(A * const ptr) {ptrs_.push_back(ptr);}
std::vector<A*> ptrs_;
public:
static Singleton& getSingleton() {static Singleton singleton(A::get_static_this()); return singleton;}
void print_vec() {for(auto x : ptrs_) std::cout << x->test << std::endl;}
};
int main()
{
std::cout << "Singleton contains: ";
Singleton::getSingleton().print_vec();
return 0;
}
आउटपुट:
Singleton contains: 100
लेकिन क्या अलग अनुवाद इकाई में परिभाषित में A::staticA
तो क्या होगा? क्या इसे static Singleton
से पहले बनाया जाएगा? आप सुनिश्चित नहीं हो सकते हैं।
संबंधित मुद्दे
- 1. सी ++ - गैर स्थैतिक स्थैतिक वस्तु बनाम स्थानीय स्थैतिक वस्तु
- 2. वस्तु और सूचक ग्राफ़ अभ्यावेदन
- 3. स्थैतिक जेएनआई पर्यावरण सूचक कैसे बनाएं?
- 4. आवंटित स्थैतिक वस्तु के गैर स्थैतिक सदस्य कहां हैं?
- 5. स्थिरांक सूचक एक सूचक
- 6. सी ++ सिंगलटन बनाम वैश्विक स्थैतिक वस्तु
- 7. क्या यह एक उद्देश्य-सी सूचक का वैध उपयोग है?
- 8. यह सूचक और प्रदर्शन दंड
- 9. क्या यह वस्तु का एक सुरक्षित प्रकाशन है?
- 10. एक समारोह वस्तु पासिंग और यह कॉलिंग
- 11. आरएमआई NotSerializableException हालांकि यह एक दूरस्थ वस्तु
- 12. जेएमएच: सभी बेंचमार्क परीक्षणों में एक ही स्थैतिक वस्तु का उपयोग
- 13. कैसे एक ही वस्तु
- 14. एक स्ट्रिंग एक सूचक
- 15. सूचक सूचक और सूचक का मूल्य कैसे बढ़ाया जाए?
- 16. एक जटिल अल्पकालिक वस्तु का खुलासा करने का सही तरीका
- 17. एक वस्तु का काफ्का सीरियलाइजेशन
- 18. कैसे एक सूचक का विलोपन गतिशील डाली
- 19. यह/स्वयं सूचक अनिवार्य स्पष्ट होने का क्या फायदा है?
- 20. मैं एक समारोह सूचक द्वारा परिभाषित किया गया है एक सी ++ एक विशिष्ट वस्तु दृष्टान्त
- 21. सी ++ स्थैतिक वस्तु निर्माण को रद्द करें - लिनक्स पर जीसीसी
- 22. स्थैतिक स्मृति मुक्त करना? कोई, यह सही
- 23. बूस्ट: यदि यह सूचक है तो एक टेम्पलेट तर्क
- 24. एक स्थैतिक विधि में UrlEncoder का मजाक
- 25. एक कैलेंडर वस्तु
- 26. सी में "यह" सूचक (सी ++ नहीं)
- 27. सूचक एक एम्बेडेड मंच
- 28. एक __stdcall समारोह सूचक
- 29. एक स्वामित्व सूचक
- 30. एक कच्चे सूचक प्रोटोटाइप
यदि आप इस तरह सिंगलटन करते हैं, तो http://stackoverflow.com/questions/6993400/managing-a-singleton-destructor/6993501#6993501, तब तक जब तक आप प्रबंधन सिंगलटन से इंस्टेंस तक पहुंचें, ऑर्डर करें निर्माण और विनाश प्रभावी ढंग से गारंटीकृत है। – Nim