begin process at 2010 02 10 03:57:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Héritage et destructeur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Héritage et destructeur

vendredi 2 juin 2006 à 18:38:26 | Héritage et destructeur

vincemail

    Bonsoir à tous, j'aurai besoin de quelques précisions quant aux destructeurs d'une classe héritant d'une autre. J'ai une classe B qui hérite d'une classe A (avec un destructeur définit pour chacune des classe), et je voudrais savoir ce qu'il se passe lorsqu'on fait un "delete" sur un objet de la classe B. J'ai l'impression que le destructeur de B est lancé puis celui de A... mais ca me parait bisarre quand meme, vous pouvez m'éclairer ?
Merci beaucoup
Vincent
vendredi 2 juin 2006 à 19:09:24 | Re : Héritage et destructeur

vecchio56

Administrateur CodeS-SourceS
Si tu fais A* a = new B(); delete b; Seul le destructeur de A sera appelé (sauf si le destructeur de A est virtuel) Par contre: B* b = new B(); delete b; Va appeler le destructeur de B, puis celui de A. Dans tous les cas, le destructeur de A sera appelé
vendredi 2 juin 2006 à 20:47:30 | Re : Héritage et destructeur

vincemail

Je vois, n'y a t-il aucun moyen que les instructions :
A* a=new B();
delete a;

déclenche le destructeur de B puis celui de A ? Car c'est ce que je voudrais faire justement... C'est quoi un destructeur virtuel ?
Merci
Vincent
vendredi 2 juin 2006 à 20:59:16 | Re : Héritage et destructeur

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Justement, c'est possible en mettant le destructeur de A comme virtuel: virtual ~A(); Virtuel, ca veut dire que justement il sera appelé dans le cas que tu cites Exemple pour être sûr: #include using namespace std; class A { public: virtual ~A() {cout << "A::~A()" << endl;} }; class B: public A { public: ~B() {cout << "B::~B()" << endl;} }; int main() { A* a=new B(); delete a; }
vendredi 2 juin 2006 à 21:05:50 | Re : Héritage et destructeur

vincemail

    Ah d'accord, merci beaucoup, ca va vraiment m'aider ! Bonne soirée
Vincent


Cette discussion est classée dans : classe, héritage, destructeur


Répondre à ce message

Sujets en rapport avec ce message

Pb de Multi héritage [ par bach58 ] Je veux définir une classe Z qui hérite d'une autre classe A par deux voies différentes :class A{ int a; ....}class X:A ..{..}class Y:A... {...} Héritage [ par Aldarek ] Bonjour à tous j'ai un petit problème, j'ai du mal à faire le lien entre deux classes Quelqu'un pourrait il m'aider? Voici le code: Manger::Manger(int Constructeur par recopie et Héritage [ par heleos ] Bonjour, J'ai un légé soucis avec un programme c++ Je n'arrive pas à faire un constructeur par recopie d'une sous classe. J'ai testé comme ceci mais Héritage... [ par platon179 ] Bonjour, petit souci concernant les classes dérivées et l'accès aux fonctions membres. Je vous schématise simplement le problème : La classe Base poss template et héritage [ par cybermax62 ] j'ai un problème de fond dans ma conception. Je voudrais utiliser une classe template de base Singleton avec des classes héritées (plusieurs fois). Le Besoin d'un peu d'aide sur l'héritage et les constructeurs [ par neodelphi ] Bonjour tout le monde, j'ai deux petites question à propose du langage c++ sur l'héritage et les constructeurs:Tout d'abord, je voudrai savoir si lors TPanel et héritage [ par websinh ] Bonjour tout le monde,Alors voilà mon problème : J'ai deux classes. l'une scrMain et l'autre scrEditor. scrEditor Hérite de scrMain. sur cette classe template et l'héritage [ par imad_lol ] salut.dans mon programme je déclare 2 classe X et Y.les 2 classe sont des classes templates et Y hérite de X :template class X{ };//****************** héritage d'une template classe comme vector [ par Urukai1 ] bonjourje suis un newbie en cpp, et j'ai fait beaucoup de javaje souhaite faire une classe qui herite par exemple de la classe vector avec template,le Problème d'héritage de classes templates [ par emiaille ] Bonjour tout le monde,En ce moment je m'initie aux templates et j'ai donc créer une classe template matrix delaquelle je tire la classe vector par hér


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,663 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales