operator = et const

operator = et const - C++ - Programmation

Marsh Posté le 02-01-2009 à 18:52:39    

Bonjour,
 

Code :
  1. #include <iostream>
  2. using namespace std;
  3. struct A {
  4.   A& operator=(const A& ) {
  5.     cout << "A::operator=(const A& )" << endl;
  6.     return *this;
  7.   }
  8.   A& operator=(A& ) {
  9.     cout << "A::operator=(A& )" << endl;
  10.     return *this;
  11.   }
  12. };
  13. class B {
  14.   A a;
  15. };
  16. int main() {
  17.   B x, y;
  18.   x = y;
  19.   system("pause" );
  20. }


 
Pourquoi est-ce l'operateur = avec paramètre const qui est appelé ?
 
Merci


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
Reply

Marsh Posté le 02-01-2009 à 18:52:39   

Reply

Marsh Posté le 02-01-2009 à 19:16:25    

c'est un TP ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 02-01-2009 à 20:28:43    

non je suis plus à l'école....


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
Reply

Marsh Posté le 02-01-2009 à 22:50:22    

B contient un A et n'a pas de constructeur de copie défini. Le compilo en fournie un de base qui a pour signature :
 
B& operator=(B const & );
 
l'affection se fait donc avec un B const et par inférence, appelle le operator(A const& )

Reply

Marsh Posté le 02-01-2009 à 23:51:56    

super merci


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed