Sujet : [C++] Affectation par dtor+ctor de copie ? |
LeGreg |
Ben je t'ai donné la seule ou tu es obligé de le faire..
Tu peux appeler un destructeur plusieurs fois si tu t'assures
qu'il est reentrant.
Citation :
Ton exemple d'appel explicite au constructeur est effectivement à manier avec précaution.
|
Tu n'as pas compris: il n'est pas a manier avec precaution, il est a OUBLIER. Ne jamais coder comme ca, ce code est invalide en C++.
Citation :
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 ?
|
Si le destructeur est virtuel on appelle destructeur de la classe fille. (pour un destructeur, "virtuel" ca a le meme sens que pour n'importe quelle fonction).
Et on ne construit pas un objet de base derriere puisque le code que j'ai ecrit est invalide. On ne l'ecrit jamais. (demande toi pourquoi il n'y a pas de constructeur virtuel en C++).
Pour faire ce que tu veux, passe par une fonction assign() et destroy() séparées que tu appelles depuis le constructeur et le destructeur. Ces fonctions seront eventuellement virtuelles suivant ce que tu veux faire.
A+
LeGreg |