Evaluation de variable globale avant celle du main

Evaluation de variable globale avant celle du main - C++ - Programmation

Marsh Posté le 20-07-2010 à 08:57:15    

Hello,
 
Je suis en train de faire une Factory. Elle contient donc des objets de même type de base.
J'aimerais mettre en place un système d'enregistrement auto de ces objets dans ma Factory, et en cherchant sur le net, j'ai lu qu'il fallait passer par des variables gloables.
 
Voilà en gros le truc :
 
class Factory
- getInstance
- register( string, Base*)
 
class Base
- constructeur
 
class Extended1 : class Base
- constructeur
 
Dans le .cpp définissant Extended1, je mets ça en global :

Code :
  1. Base* create_Extended1()
  2. {
  3.     return new Extended1;
  4. }
  5. static bool Extended1_creator_registered = Factory::getInstance()->register( "Extended1", (Base*)create_Extended1() );


 
Mon problème est que ce code n'est jamais appelé, du coup pas d'enregistrement. Est-ce que j'ai loupé un truc ?
 
 
 
Note : le code de la Factory et de ce qu'elle contient se trouve généré dans un .lib


---------------
Be the one with the flames.
Reply

Marsh Posté le 20-07-2010 à 08:57:15   

Reply

Marsh Posté le 20-07-2010 à 10:29:34    

L'editeur de liens n'extrait des lib que les objets fournissant des symboles references par ailleurs.
 
L'enregistrement par effet de bord de l'initialisation de variables globales est une fausse bonne idee.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 20-07-2010 à 10:30:50    

Ok d'acc, du coup ya une solution sympa et propre pour l'enregistrement automatique ?


---------------
Be the one with the flames.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed