[FAQ] instruction throw() et redéfinition (dérivation)
mon compilateur (g++ 3.3.2) n'aime pas la redéfinition d'une fonction membre dans une classe dérivée qui possédait l'instruction throw() dans la classe mère.
en particulier dans les codes de la FAQ concernant la dérivation de la classe std::exception, il n'accepte pas une classe dérivée sans redéfinition du destructeur et aussi what sans rajouter throw().
Quelle est donc la solution ?
PS : je n'ai pas vraiment compris la dernière phrase de la FAQ sur ce sujet
Comment s'assure-t-on qu'aucune exception ne sera levée ?
http://c.developpez.com/faq/cpp/?pag...fonction_throw
Re: [FAQ] instruction throw() et redéfinition (dérivation)
Citation:
Envoyé par PINGOUIN_GEANT
Justement, throw() ne sert pas à s'assurer que la fonction ne lancera pas d'exception: elle sert juste à indiquer qu'elle n'en lancera pas. Donc il ne faut utiliser throw() que si tu maitrise parfaitement ta fonction et que tu es sur qu'elle n'en lancera pas. Car si elle lance une exception alors que throw() est spécifié, la fonction unexpected est appelée, qui par défaut appelle terminate (=> "Abnormal program termination", méchant ^^).
A+
Re: [FAQ] instruction throw() et redéfinition (dérivation)
Citation:
Envoyé par PINGOUIN_GEANT
As-tu mieux compris ? Qu'est-ce qui ne va pas dans la formulation ?