2010-07-15 25 views
11

He mirado alrededor, necesito un ejemplo para la clase Singleton que funciona en 2 o más archivos C++/CLI.Ejemplo de Singleton en C++/CLI?

¿Cómo declaras un singleton en C++/CLI, no en C#?

¿Cómo compartes ese singleton en dos o más archivos C++/CLI?

Sigo recibiendo redefiniciones variables cuando intento compartir ese singleton.

+0

Deberás ser más específico. ¿Necesita inicialización lenta? ¿Tiene que ser seguro para subprocesos? ¿Se requiere eliminación? –

+0

Cualquier ejemplo ... no hay ninguno para C++. NET singleton. Obtengo errores de redefinición, necesita ser administrado, pero la clase ya es byref, obtengo necesidades ";" antes de "}", también tengo necesidades ":" después de la variable. – buttercup

+0

Haré esta pregunta una semana más o menos. Si no hay respuestas, depositaré una recompensa sobre esta pregunta ... Esta es una pregunta casi imposible con 0 soluciones disponibles en Internet. – buttercup

Respuesta

15

Esto es para C++/CLI, no ".NET Extensiones administradas para C++" también conocido como C++. NET. No use las extensiones administradas (Visual Studio 2002-2003), tienen errores.

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

En cuanto a "a través de múltiples archivos", otras unidades de compilación en el mismo proyecto utilizan #include, otros conjuntos de utilizar una referencia (o #import). Entonces no habrá problemas de redefinición.

+0

¿Y cómo se llama esto? – marsh