Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Placement new sur la pile

1 réponse
Avatar
loic.joly
Bonjour,

Je me demandais s'il =E9tait l=E9gal d'=E9crire du code comme celui ci :

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

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

--
Lo=EFc

1 réponse

Avatar
James Kanze
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