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