2010-07-15 13 views
11

मैंने चारों ओर देखा है, मुझे सिंगलटन क्लास के लिए एक उदाहरण चाहिए जो 2 या अधिक सी ++/सीएलआई फाइलों में काम करता है।सी ++/सीएलआई में सिंगलटन उदाहरण?

आप सी ++/सीएलआई में सिंगलटन कैसे घोषित करते हैं, सी # नहीं?

आप दो या अधिक सी ++/सीएलआई फ़ाइलों में उस सिंगलटन को कैसे साझा करते हैं?

जब मैं उस सिंगलटन को साझा करने का प्रयास करता हूं तो मैं परिवर्तनीय पुनर्वितरण प्राप्त करता रहता हूं।

+0

आपको और अधिक विशिष्ट होना होगा। क्या आलसी शुरुआत की आवश्यकता है? क्या इसे धागा सुरक्षित होना चाहिए? निपटान की आवश्यकता है? –

+0

कोई उदाहरण ... सी ++ के लिए कोई नहीं है। नेट सिंगलटन। मुझे Redefinition त्रुटियां मिलती हैं, प्रबंधित करने की आवश्यकता होती है, लेकिन कक्षा पहले से ही है, मुझे जरूरत है ";" "}" से पहले, मुझे वैरिएबल के बाद भी ":" आवश्यकताएं मिलती हैं। – buttercup

+0

मैं इस प्रश्न को एक सप्ताह या उससे भी अधिक समय दूंगा। यदि कोई जवाब नहीं है, तो मैं इस प्रश्न पर एक बक्षीस रखूंगा ... इंटरनेट पर उपलब्ध 0 समाधान (ओं) के साथ यह लगभग असंभव सवाल है। – buttercup

उत्तर

15

यह C++/CLI के लिए है, न उर्फ ​​सी ++। नेट "एक्सटेंशन सी के लिए ++ प्रबंधित .NET"। प्रबंधित एक्सटेंशन का उपयोग न करें (विजुअल स्टूडियो 2002-2003), वे छोटी हैं।

ref class Singleton 
{ 
private: 
    Singleton() {} 
    Singleton(const Singleton%) { throw gcnew System::InvalidOperationException("singleton cannot be copy-constructed"); } 
    static Singleton m_instance; 

public: 
    static property Singleton^ Instance { Singleton^ get() { return %m_instance; } } 
}; 

के लिए के रूप में "भर में एक से अधिक फ़ाइलों", एक ही परियोजना में अन्य संकलन इकाइयों #include उपयोग करते हैं, अन्य विधानसभाओं के लिए एक संदर्भ (या #import) का उपयोग करें। तब कोई भी पुनर्वितरण मुद्दे नहीं होंगे।

+0

पर काम करते हैं और आप इसे कैसे कहते हैं? – marsh

संबंधित मुद्दे