Héritage de classe template, je sais c'est redondant [G++] - C++ - Programmation
Marsh Posté le 23-10-2005 à 22:48:11
Code :
|
un rappel de constructeur c'est après ":" et pas après "{"
le rappel de destructeur est automatique, idem avec le constructeur par défaut.
Code :
|
c'est mieux je pense
Marsh Posté le 23-10-2005 à 22:52:13
Ca fonctionne pour les constructeurs mais pas pour le destructeur...
Marsh Posté le 23-10-2005 à 22:58:05
# // Destructeur de la classe (désalloue les pointeurs pour
# // la données et pour les feuilles)
# ~ArbreBinaire() {
# Arbre<Type1, Type2>::~Arbre();
# }
dégage ça.
Marsh Posté le 23-10-2005 à 22:58:47
Code :
|
comment t'as testé que ça marche pas ?
La testruction d'un dérivé est suivie de la destruction de l'objet de base.
sauf en cas de polymorphisme dans quel cas t'as oublié de mettre le destructeur virtual -> appel du destructeur de base seulement.
Code :
|
Marsh Posté le 23-10-2005 à 23:00:18
de façon générale, on n'a jamais à appeler explicitement un destructeur. Je me demande pourquoi c'est permis d'ailleurs. Taz, t'aurais un exemple de bonne utilisation de ~T explicite ?
[edit] j'y pense : pour surcharger delete ? A part ça je ne vois pas l'utiliter d'appeler ~T().
Marsh Posté le 23-10-2005 à 23:02:53
Ha ! Oui effectivement ok, c'est bon le problème est reglé...
Marsh Posté le 23-10-2005 à 23:07:31
oui. Quand tu dissocies allocation et construction/destruction.
Code :
|
;
edit: typo
Marsh Posté le 23-10-2005 à 23:09:28
ah oui avec le placement new.
merci Taz !
je vais me coucher tiens...
Marsh Posté le 23-10-2005 à 22:44:31
Salut à tous !
Désolé pour ce problème redondant (j'ai déjà regardé les autres posts) mais j'ai un problème avec l'héritage de classe template sous g++ que je n'arrive pas à résoudre...
J'ai une classe template arbre.h qui fonctionne parfaitement et qui a des données en protected et en public, mais
hélas, le code de l'héritage suivant ne fonctionne pas !
Aidez moi s'il vous plait !!!