Je ne pense pas que tu puisses, mais je pense que c'est une très mauvaise idée de laisser ton objet s'initialiser automatiquement avant le main surtout s'il peut lancer une exception. Tu ne maitrises pas du tout l'ordre de création et de destruction de ton objet et ça peut avoir des conséquences fâcheuses s'il dépend de l'existence d'un autre objet. tu ne pourras pas assurer que tes objets sont crées dans le bon ordre. (
plus de détails dans la c++ faq lite)
T'as deux solutions pour remédier à ça :
- Tu conserves tes objets en global, mais le constructeur ne fait pas grand chose. Le code qui dépend d'autre chose, qui peut échouer, qui est plus sensible, tu le mets dans une méthode init() que tu appelles toi même une fois rentré dans le main. tu fais pareil avec une méthode shutdown() que tu appelles avant de quitter main. On oeut trouver cette méthode bof, ton objet peut être construit et pas initialisé, c'est pas
RAII
- Tu remplaces tes objets globaux par des pointeurs globaux et tu alloues les objets toi même une fois rentré dans le main.