Bonjour.
J'ai créé une classe B qui hérite d'une classe A. Or A, à déjà une fonction avec l'opérateur == (définie pour une classe A).
J'ai surchergé cet opérateur dans la classe B avec un operator==(B &).
ma question porte donc sur le renvoi de A==B(A) et B(A)==B.
concrètement:la question est: que se passe-t'il lors du code suivant:
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 class A { public: int varA; A(arguments &args); A(A &a); bool operator==( const A &a)const; } class B : public A { public: int varB; B( const int &varb, arguments & args):A(args),varB(varb){} B( const int &varb, A & a):A(a),varB(varb){} B(B & b); bool operator==(const B &b)const { return (varB=b.varB && A::operator==(B)); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 A an_A; B an_B; int I;//I quelquonque bool reponse; reponse=(an_A==A(an_A)); //renvoie true reponse=(an_B==B(an_B)); //renvoie true reponse=(an_A==B(an_A,I)); //renvoie ? reponse=(B(an_A,I)==an_A); //renvoie ? reponse=(an_B==A(an_B)); //renvoie ? reponse=(A(an_B)==an_B); //renvoie ?
Merci de vos réponses![]()
Partager