Bonjour,
J'ai un probleme car je n'ai pas tout a fait compris quelque chose avec les surcharges de methode.
J'ai un petit code avec 4 classes une de base abstraite et trois derivees.
Ces classes contiennent une methode de saisie. qui est chaque fois surchargee.
Pour suivre le principe de l'heritage chaque classe est plus riche que la precedente.
Est ce que je dois redonne chaque fois tout le contenu de la methode surchargee ou seulement le complement.
Voir code ci-dessous
Ici j'ai la structure de mes classes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Ici ma classe abstraite avec meth. virtuelle pour saisie class Option{ private: protected: float noteFinale; //Decl nFin public: Option(void); //construc par def. Option(float); //construc avec init. noteFinale ~Option(); //destruc virtual void saisieAttr(void)=0; //Decl methode virtu saisie attribut }; Ici ma premiere heritiere class Option1 : public Option{ private: protected: float contrCont; // Note controle continu float noteExa; // Note examen public: Option1(void); //construc par def. Option1(float cC, float nE); //construc avec init. contrCont et noteExa ~Option1(); //destruc void saisieAttr(void); //Decl methode polymorphe saisie attribut }; J'en ai egalement une troisieme Option2 avec la meme methode pour saisie d'attribut et un attribut supplementaire pour la classe
Maintenant mon probleme est de savoir comment je dois formuler la decl de methode. La selection de la bonne instance de classe ne pose pas de probleme.
Ici la formulation pour la methode de Option3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Formulation methode de Option1 //Methode pour saisie des attributs de classe Option1 void Option1::saisieAttr(void){ cout << "Donnez la note de control continu \n"; cin >> contrCont; cout << "Donnez la note d'examen \n"; cin >> noteExa; }
Ma question est de savoir si je suis oblige de repeter les element deja contenu dans la methode de saisie de Option1?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //Methode pour saisie des attributs de classe Option2 void Option2::saisieAttr(void){ cout << "Donnez la note de control continu \n"; cin >> contrCont; cout << "Donnez la note d'examen \n"; cin >> noteExa; cout << "Donnez la note de stage \n"; cin >> noteStage; }
Partager