Question de "cours" : constructeurs de classe dérivée et classe de base

Résolu
mhassine Messages postés 12 Date d'inscription vendredi 26 décembre 2003 Statut Membre Dernière intervention 2 septembre 2005 - 2 sept. 2005 à 17:23
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 8 sept. 2005 à 09:31
Bonjour,

j'ai une classe personne et une classe etudiant dérivée de personne.
J'ai le constructeur Personne(string n)
J'ai aussi le constructeur etudiant(string mt[], float nt[],string n):personne(n).
Pourrait on m expliquer l'intèrêt de personne(n) à la fin de ce dernier constructeur?
Merci de votre future réponse.
a bientot.

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 sept. 2005 à 17:32
Ca va appeler le contructeur Personne avec n comme argument, sinon c'est le constructeur par défaut qui serait appelé. Et s'il n'y a pas de constructeur pas défaut, ca ne compile tout simplement pas.
3
mhassine Messages postés 12 Date d'inscription vendredi 26 décembre 2003 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 19:36
Merci beaucoup de ta réponse rapide. :) A bientot.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
2 sept. 2005 à 23:52
ton constructeur est

etudiant(string mt[], float nt[],string n);





son implémentation est



etudiant(string mt[], float nt[],string n):personne(n)

{

...

}





cela équivaut à peu de choses près à



etudiant(string mt[], float nt[],string n)

{

Personne p(n);

personne=p;

...
}

si l'opérateur d'égalité est défini.



Nota:

l'opérateur d'héritage (:) est une spécificité du C++ et n'hexiste plus en C#

ou on écrira




etudiant(string mt[], float nt[],string n)


{


personne=new Personne(n);


...

}



......... sauf erreur de ma part.

___________________________________________________________
Magicalement
Nono
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 sept. 2005 à 00:33
Je pense pas que personne n'est pas membre de la classe étudiant, il s'agit de la classe mère, donc le code n'est pas équivalent à ce que tu écris. On est obligé ici d'utiliser la méthode avec le :
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
8 sept. 2005 à 09:31
sans héritage, la solution pour avoir qqch de similaire (point de vu
donnée, pas facilité d'acces) est d'avoir 'personne' en tant que membre
de Etudiant.

___________________________________________________________
Magicalement
Nono
0
Rejoignez-nous