Construction d'objets statiques

BenGourion73 Messages postés 9 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 2 mars 2009 - 20 août 2008 à 19:13
BenGourion73 Messages postés 9 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 2 mars 2009 - 22 août 2008 à 12:02
Une question bête : J'ai plusieurs instances statiques de classes déclarées dans mon prog. Par exemple,

static TotoClasse TotoDefault;

mais par ailleurs, j'ai aussi un classe Toto2 qui contient en membre une instance de Toto. Par ailleurs, une instance statique de Toto2 :
static Toto2 Toto2Default;

sachant que le constructeur par défault de Toto2 est

Toto2();
{
      *this = TotoDefault
};

Bien sur à l'exécution, c'est la construction de Toto2Default qui est faite en premier et qui plante puisque TotoDefault n'a pas été crée en premier. Questions :

1/ Quel est l'ordre de construction par défaut des objets statiques
2/ Comment peut-on forcer cette ordre ?

3 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
20 août 2008 à 19:52
Et si tu fais :
static Toto2 Toto2Default=TotoDefault;
au lieu de faire la copie dans le constructeur?

Sinon pour répondre à ta question, je ne sais pas si on peut régler l'ordre.
Si tu veux avoir le contrôle absolu, déclare seulement des pointeurs en static puis fais une fonction d'initialisation (et d'allocation du coup) en début de code.
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
20 août 2008 à 19:56
Pour être plus complet :
http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.12
10.12 et 10.13
0
BenGourion73 Messages postés 9 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 2 mars 2009
22 août 2008 à 12:02
merci.
0
Rejoignez-nous