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:
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? Graziecodice:#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; }

Rispondi quotando