Salut à tous,
J'ai le souci suivant:
J'ai la structure de classe suivante:
-CIntegration
----CCircuitA
----CCircuitB
----COrdre2
--------CCircuitC
--------CCircuitC
Et CCircuitB possède la méthode "Parametres"
J'instancie mes classes ainsi:
Code :
- CIntegration *Circuit;
- switch ( ChoixCircuit)
- {
- case 1 :
- Circuit = new CCircuitA;
- break;
- case 2 :
- Circuit = new CCircuitB;
- Circuit->Parametres();
- break;
- case 3 :
- Circuit = new CCircuitC;
- break;
- case 4 :
- Circuit = new CCircuitD;
- break;
- default : cout << "error" << endl;
- }
|
Le problème c'est que lors de la compilation, VS2005 me dit que la méthode paramètre n'appartient pas à CIntegration
(normal vu que elle appartient à une de ses classes filles)
Du coup je suis obligé de définir Parametres en virtuel dans la classe CIntegration et de l'overrider dans chacune des classes CCircuitA, C et D.
Le problème c'est que pour CCircuitA, CCircuitC, CCircuitD , la fonction ne sert à rien et est vide.
En gros, j'ai:
Code :
- void CCircuitA::Parametres()
- {
- }
- ...
- void CCircuitC::Parametres()
- {
- }
- ...
- void CCircuitD::Parametres()
- {
- }
|
Y'a un moyen d'éviter ça?