Classes virtuelles et méthodes d'accès aux données privées
Bonjour à tous,
Je dispose d'une classe DA qui contient un constructeur et un destructeur, ainsi que des data en protected :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class DA
{
public:
DA();
DA(char * Name, char * FC, char * TrgOp, char * M_O_C);
~DA();
private:
protected:
char * DataAttributeName;
char * FunctionalConstraint;
char * TrgOp;
char * M_O_C;
}; |
Ensuite, je dispose d'autres classes (une par type de données en fait) qui récupèrent les data protégées de la classe mère et qui en implémentent une nouvelle pour chacune:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class BOOLEAN_TYPE : public DA
{
public:
BOOLEAN_TYPE();
BOOLEAN_TYPE(char * Name, char * FC, char * TrgOp, char * M_O_C);
~BOOLEAN_TYPE();
private:
bool Value;
protected:
};
class ET_IEC_DIRECTIONAL_TYPE : public DA
{
public:
ET_IEC_DIRECTIONAL_TYPE();
ET_IEC_DIRECTIONAL_TYPE(char * Name, char * FC, char * TrgOp, char * M_O_C);
~ET_IEC_DIRECTIONAL_TYPE();
private:
ET_IEC_DIRECTIONAL Value;
protected:
};
/* Beaucoup d'autres ... */ |
Mon objectif est de créer à partir de là des fonctions qui permettent d'accéder aux données "Value" de chaque classe fille. L'idéal aurait-été de créer une seule fonction en public dans la classe mère et que toutes les classes filles puissent l'utiliser par héritage. Le problème est que le type de "Value" diffère pour chaque classe fille. Je cherche une solution qui me permette d'éviter de coder une fonction pour chaque type de "Value".
Quelqu'un connaitrait-il une méthode efficace ?