2010-07-15 11 views
11

Mi sono guardato attorno, ho bisogno di un esempio per la classe Singleton che funzioni su 2 o più file C++/CLI.Esempio Singleton in C++/CLI?

Come si dichiara un singleton in C++/CLI, non in C#?

Come si condivide tale singleton su due o più file C++/CLI?

Continuo a ottenere ridefinizioni Variable quando provo a condividere quel singleton.

+0

Dovrai essere più specifico. Ha bisogno di inizializzazione pigra? Ha bisogno di essere thread sicuro? È necessaria la disposizione? –

+0

Qualsiasi esempio ... non ce n'è per C++. Singleton NET. Ottengo errori di Redefinizione, Deve essere gestito, ma la classe è già byref, ottengo i bisogni ";" prima di "}", ho anche bisogno di ":" dopo la variabile. – buttercup

+0

Darò questa domanda circa una settimana. Se non ci sono risposte, metto una taglia su questa domanda ... Questa è una domanda quasi impossibile con 0 soluzione (i) disponibile su Internet. – buttercup

risposta

15

Questo è per C++/CLI, non ".net estensioni gestite per C++" aka C++. NET. Non utilizzare le estensioni gestite (Visual Studio 2002-2003), sono bug.

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; } } 
}; 

quanto riguarda "in più file", altre unità di compilazione nello stesso progetto utilizzano #include, altri assiemi utilizzare un riferimento (o #import). Quindi non ci saranno problemi di ridefinizione.

+0

E come si chiama questo? – marsh