letoII a écrit a écrit :
Faudra pas t'étonner si t'as des problèmes dans tes progs
|
Si c'est dangereux, illégitime ou bogué, je veux savoir pourquoi, c'est important pour moi.
Simplement dire "faut pas" ne me satisfait pas.
pulco-citron a écrit a écrit :
on peut aussi utiliser un new de placement
|
Le new, de placement ou pas, implique un appel a delete.
On ne peut pas demander à l'utilisateur de Truc d'y penser !
Quand à ton exemple "t->f()", il est effectivement dangereux, car il ne marchera pas si f n'est plus statique, et que le codeur risque de croire qu'il a un objet pointé.
C'est "Toto::f()" qu'il aurait fallu écrire.
Et pourtant... si on change le type pointé par t, ça ne suit pas le changement, et pire encore sans message d'erreur !
C'est pourquoi on peut préférer écrire "t->f()", qui est une méthode d'appel légitime pour une fonction de classe statique.
legreg a écrit a écrit :
L'appel au destructeur explicite est valide tant que tu respectes certaines regles.
|
Lesquelles ?
Ton exemple d'appel explicite au constructeur est effectivement à manier avec précaution.
Si le destructeur de la classe est virtuel, que se passe t'il ? On détruit un objet dérivé pour contruire un objet de base ?
Message édité par Musaran le 06-04-2002 à 18:16:41
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone