On 6/7/07, personaje <[EMAIL PROTECTED]> wrote:



On 6/7/07, personaje <[EMAIL PROTECTED]> wrote:
>
>
>
> On 6/7/07, Sebastian Durandeu < [EMAIL PROTECTED]> wrote:
> >
> > 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 :)
> >
> >
> > Cuando hago:
> >
> > Campo* miCampo = Campo::get_instance();
> > miCampo->set_tamanio(5);   ----> ACA PINCHA y miCampo no es NULL!
>
>
> a mi me anda, con una funcion dummy para set_tamanio()... usando gcc!
> quizás estás metiendo la pata en alguna porción de código que no nos
> compartiste
>

retiro lo dicho, le agregué el destructor y un delete miCampo; y me
apareció SIGSEV


claro, ahora caigo, estás haciendo delete de la propia clase... no deberías
hacer algo tipo

idem todo tu código de arriba pero; Campo no hereda de Slingleton<Campo> y
creas una clase así:

class SingleCampo : public Singleton<Campo>
{
public:
   SingleCampo(){};
   virtual ~SingleCampo(){};
private:
};

// y el main te queda :
int main()
{
   Campo* miCampo = SingleCampo::get_instance();
   miCampo->set_tamanio(5);
   SingleCampo::delete_instance();
}

o sin el delete_instance() total los singletons pueden vivir hasta el fin
del programa...

--
v3sw6Chw5ln6pr7Ock3ma8u9Lw3Xm5l7Gi2Ce6t6Gb8Ten4g6OPa28s5Mr1p8
hackerkey.com
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a