PDA

Visualizza la versione completa : [C++] Singleton nello stack


gatsu85
23-02-2011, 10:43
Salve ragazzi, ho un piccolo problemino.. finora ho sempre implementato singleton c++ con il pattern classico ovvero mettendo un puntatore statico e facendo la new solo nel caso in cui il puntatore sia null. Ad esempio:



#include <iostream>
#define null 0

class singleton
{
private:
static singleton* instance_ptr;
singleton() { };

public:
~singleton() { };
static singleton* get_instance()
{
if (instance_ptr == null)
{
instance_ptr = new singleton;
}
return instance_ptr;
}

bool method()
{ return true; };
};

// initialize pointer
singleton* singleton::instance_ptr = null;

int main()
{
std::cout << singleton::get_instance()->method() << std::endl;
return 0;
}



Ora avrei per bisogno di scrivere un singleton che non mi obblighi ad utilizzare l'heap e lavorare solo nello stack, quindi la new vietata. Come posso fare? Grazie

valia
23-02-2011, 11:37
devi giocare coi riferimenti e non coi puntatori

guarda qui (http://www.yolinux.com/TUTORIALS/C++Singleton.html) verso la fine c' un esempio

gatsu85
23-02-2011, 11:56
devi giocare coi riferimenti e non coi puntatori guarda qui verso la fine c' un esempio


grazie mille ottimo link...

Loading