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.




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;
}
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
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;
}
Ma question est de savoir si je suis oblige de repeter les element deja contenu dans la methode de saisie de Option1?