Bonjour,
J'ai un probl�me de compr�hension � propos des passages par r�f�rence. Je suis en train de travailler sur les classes abstraites. Voici ma classe CExcFille qui permet de cr�er n'importe quel code erreur gr�ce au constructeur CExcFille :
Je voudrais comprendre pourquoi l'on passe le param�tre Libelle en r�f�rence alors que le CodErr non ?
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 namespace { class CExcFille : public CException { public : inline void _Edit() { cout << "Affichage de la fonction _Edit (class CEXcFille)" << endl; } CExcFille(const string & Libelle, const unsigned CodErr) { } }; }
Deuxi�mement, j'ai une classe CEditable qui me permet d'afficher n'importe quel flux via l'op�rateur << :
Je ne comprends pas pourquoi la fonction renvoi un ostream et pourquoi est-il en r�f�rence ?
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 namespace nsUtil { class CEditable { public : virtual std::ostream & operator << (std::ostream & os, const CEditable & Obj) { return Obj._Edit(os); } virtual std::ostream _Edit( const std::ostream & os) =0; virtual ~CEditable (void); }; } { class CExcFille : public CException { public : inline virtual ostream & _Edit (ostream & os) { return os << "Affichage de la fonction _Edit (class CEXcFille)" << endl; } CExcFille(const string & Libelle, const unsigned CodErr) : CException(Libelle,CodErr) {} };
De m�me pour ces deux op�rateurs, pourquoi l'un prend une r�f�rence et l'autre non ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 CDuree & operator ++ (void) throw (); CDuree operator ++ (int) throw ();
Merci de votre aide !
Partager