Outils pour utilisateurs

Outils du site


lang:cpp:constructeur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lang:cpp:constructeur [2019/11/29 21:36] – Ajout de "Ordre de l'initialisation des membres par la liste du constructeur" rootlang:cpp:constructeur [2019/12/18 23:49] (Version actuelle) – Ajout de "Les exceptions dans un destructeur" root
Ligne 59: Ligne 59:
 this->**i** a été nullptr. this->**i** a été nullptr.
 </code> </code>
 +
 +====Faire échouer un constructeur/ Faire renvoyer nullptr à un constructeur====
 +Non, c'est impossible de faire échouer proprement un constructeur ou de renvoyer ''nullptr'' pour tester le code de retour.
 +
 +Le seul moyen de faire échouer un constructeur est de générer une exception.
 +
 +L'autre solution est de créer un constructeur vide (ou avec le minimum) puis d'appeler une fonction d'initialisation qui sera autorisée à échouer et enfin détruire la classe si besoin.
 +
 +====Les exceptions dans un destructeur====
 +C'est interdit. Par défaut, les constructeurs non ''noexcept''. Si une exception est générée, cela génère un ''abort()''.
 +
 +[[https://akrzemi1.wordpress.com/2011/09/21/destructors-that-throw/|Destructors that throwDestructors that throw]] {{ :lang:cpp:constructeur:destructors_that_throw_andrzej_s_c_blog_2019-12-18_23_39_00_.html |Archive du 21/09/2011 le 18/12/2019}}
lang/cpp/constructeur.1575059810.txt.gz · Dernière modification : 2019/11/29 21:36 de root