Ho una classe che dovrebbe essere dichiarata globalmente da main() e accessibile da altre classi dichiarate nel programma, come faccio?C++: dichiarare una classe globale e accedervi da altre classi?
class A{
int i;
int value(){ return i;}
};
class B{
global A a; //or extern??
int calc(){
return a.value()+10;
}
}
main(){
global A a;
B b;
cout<<b.calc();
}
Immagino che il pattern di progettazione di singelton sia un buon punto per iniziare con http://stackoverflow.com/questions/1008019/c-singleton-design-pattern –
@Artem: [Singletons: risolvere i problemi che non conoscevi non hai mai dal 1995] (http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/) –
@Artem - per rimarcare nuovamente cosa @ dice gf - non farlo! Lo stato globale rende il codice impossibile da comporre e strettamente accoppiato. Questo è negativo, tra le altre ragioni, perché rende praticamente impossibile testare. Inoltre, quasi tutte le implementazioni singleton che ho visto non erano thread safe in un modo sottile e sgradevole che non si nota finché il codice non viene eseguito su una CPU con un modello di memoria debole. – Stewart