Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    75

    [C++] Singleton nello stack

    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:

    codice:
    #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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    devi giocare coi riferimenti e non coi puntatori

    guarda qui verso la fine c'è un esempio

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    75
    devi giocare coi riferimenti e non coi puntatori guarda qui verso la fine c'è un esempio

    grazie mille ottimo link...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.