Placement new sur la pile

Le
loic.joly
Bonjour,

Je me demandais s'il était légal d'écrire du code comme celui ci :

class MaClasse
{
MaClasse();// Constructeur bidon, ne fait rien
MaClasse(int i);// Vrai constructeur
};

int main()
{
MaClasse a;
MaClasse* nonUtilise = new(&a) MaClasse(12);
// On compte sur la destruction de a, pas d'appel à nonUtilise-
>~MaClasse()
}

--
Loïc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
James Kanze
Le #309866
On Jul 23, 11:42 am, wrote:

Je me demandais s'il était légal d'écrire du code comme celui ci :

class MaClasse
{
MaClasse();// Constructeur bidon, ne fait rien
MaClasse(int i);// Vrai constructeur
};

int main()
{
MaClasse a;
MaClasse* nonUtilise = new(&a) MaClasse(12);
// On compte sur la destruction de a, pas d'appel à nonUtilise-

~MaClasse()
}



Si le destructeur de MaClasse n'est pas trivial, officiellement,
non. Dans la pratique, je vois mal un compilateur où il ne
marcherait pas.

--
James Kanze (Gabi Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Publicité
Poster une réponse
Anonyme