Méthode n'appartenant qu'à une classe fille - dynamic_cast

Méthode n'appartenant qu'à une classe fille - dynamic_cast - C++ - Programmation

Marsh Posté le 26-03-2011 à 11:51:50    

Bonjour à tous,
J'ai un petit problème avec un projet en c++.
 
J'ai une classe mère abstraite disons cAsbt et plusieurs classes filles c1 c2 c3 c4...Seul c4 dispose de la méthode dW_approx.
 
J'ai une autre classe Toto qui prend en argument un object cAbst. Dans cette classe j'ai une méthode qui contient ce genre de code :
if( dynamic_cast<c4*>(Z) != NULL ){ je calcule quelque choses avec dW_approx...}
else { un calcul sans dW_approx}
 
Malheureusement mon compilo (j'utilise dev C++) me dit que ce n'est pas possible car cAbst n'a pas de méthode dW_approx. C'est vrai, mais je ne vais travailler avec dW_approx que si je passe dans le if et donc si on est du bon type?
 
J'ai eu beau chercher sur le net je n'ai pas trouver de solution alors si vous avez des idées n'hésitez surtout pas !!

Reply

Marsh Posté le 26-03-2011 à 11:51:50   

Reply

Marsh Posté le 26-03-2011 à 21:48:09    

Code :
  1. c4 *tmpZ = dynamic_cast<c4*>(Z);
  2. if ( tmpZ != null )
  3. {
  4.   tmpZ->dW_approx()
  5. }
  6. else
  7. {
  8.   Z->autChose
  9. }


 
mais c'est une conception bancale, tu devrais déclarer une méthode abstraite calcule et implémenter calcule en utilisant dW_approx dans un cas et autre chose dans les autre cas.

Reply

Sujets relatifs:

Leave a Replay

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