héritage et surchage d'opérateur

héritage et surchage d'opérateur - C++ - Programmation

Marsh Posté le 24-04-2003 à 14:22:11    

pourquoi ne peut-on pas appeler un opérateur surchargée appartenant à une classe mère à partir d'une classe fille?
 
exemple:

Code :
  1. CBase
  2. {
  3. void operator= (int)
  4. };
  5. CFille : public CBase
  6. {
  7.   //on ne rédéfinit pas l'opérateur
  8. };
  9. int main()
  10. {
  11.   CFille fille:
  12.   fille=5;                // le compilo se fache (Visual C++)
  13.   return 0;
  14. }


 
le compilo me balance ça comme message:

Code :
  1. binary '=' : no operator defined which takes a right-hand operand of type 'char *' (or there is no acceptable conversion)


 
merci.

Reply

Marsh Posté le 24-04-2003 à 14:22:11   

Reply

Marsh Posté le 24-04-2003 à 14:51:24    

Parsque tout simplement le standard C++ nous dit que l'operateur d'affectation (operator=) n'est pas "heritable".
 
il faut donc redefinir un operator= pour chacune de tes classes filles.

Reply

Marsh Posté le 24-04-2003 à 14:55:47    

aie, c'est ce que je craignais...  :(

Reply

Marsh Posté le 24-04-2003 à 16:41:57    

Ce que je comprends pas c'est que le compilo te parle de char

Reply

Marsh Posté le 24-04-2003 à 17:15:43    

euh, ouais effectivement j'avais mis un char* à la place d'un int dans mes sources...

Reply

Sujets relatifs:

Leave a Replay

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