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:
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));
   }
}
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
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