In C++, si supponga di voler dichiarare una variabile globale che deve essere utilizzata da molti. Come si fa?Qual è il modo migliore per dichiarare una variabile globale?
In genere uso dichiarare e definire nel file cpp, quindi utilizzare extern in altri file cpp (e non nelle intestazioni).
Non mi piace questo approccio, e sto considerando qualcosa in questo senso:
In un file di intestazione:
some_file.h
Class MYGlobalClass
{
};
MyGlobalClass& MyGlobalClassInstance()
{
static MYGlobalClass instance;
return instance;
}
Modifica
Considerare nei seguenti contesti:
- può essere utilizzato in applicazioni multi-threaded
- inquinamento namespace
- potrebbero non necessery essere un Singleton, come molti esempi di questo potrebbero essere create
Quali sono i tuoi pensieri, suggerimenti, nuove idee?
Modello di progettazione Singleton –
Non è una buona idea, guarda i commenti sotto –
Una variabile globale, di cui vuoi creare più istanze? Sembra che tu debba ancora elaborare un po '... – Reunanen