Quiero crear una clase parametrizada para aplicar el patron singleton en
C++.
Compila pero no me funciona correctamente, puntualmente tira segmentation
fault. Estoy seguro que estoy cometiendo algun error (sino varios) en la
forma de utilizarla pero no se cual :)
Hice lo siguiente:
-------------------------------------------------------
Template<class Target>
class Singleton
{
protected:
//REFERENCIA ESTATICA
static Target* target;
Singleton();
public:
virtual ~Singleton();
static Target* get_instance();
static void delete_instance();
};
template <class Target>
Target* Singleton<Target>::target = NULL;
template <class Target>
Singleton<Target>::Singleton()
{
}
template <class Target>
Singleton<Target>::~Singleton()
{
}
template <class Target>
Target* Singleton<Target>::get_instance(){
if(!target)
target = new Target();
return target;
}
template <class Target>
void Singleton<Target>::delete_instance(){
if(target)
delete target;
target = NULL;
}
---------------------------------------------------
Y la uso mas o menos de la siguiente forma:
class Campo: public Singleton<Campo> {
public:
set_tamanio(int x); -> método de ejemplo
private:
Campo(); //CONSTRUCTOR
friend class Singleton<Campo>;
}
Cuando hago:
Campo* miCampo = Campo::get_instance();
miCampo->set_tamanio(5); ----> ACA PINCHA y miCampo no es NULL!
Toda idea es bienvenida!
Un saludo
Sebastian
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion