Comment copier correctement un attribut pointeur qui a des classes filles
Bonjour,
je suis face à un problème objet et je n'arrive pas à trouver la solution, j'ai du trop faire de java et perdre quelques notions de polymorphisme :cry:
En tout cas je "bloque" !!
J'ai les classes suivantes :
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 28 29 30 31 32 33 34 35 36 37 38 39
|
class TType {
public:
int entier;
};
class TTypeA : public TType {
public:
int entierA;
char * chaine;
TTypeA() {
entierA = 8;
chaine = "toto";
};
};
class TTypeB : public TType {
public:
int entierB;
};
class TData {
public:
TData(){};
int entierData;
TType * type;
};
class TDataFille : public TData {
public:
int entierFille;
TDataFille(TData * data) {
this->entierData = data->entierData; // ok
this->type = new TType(); // comment dupliquer proprement, c'est à dire que la copie se fasse aussi au niveau de la classe fille instanciée???
}
}; |
et le code suivant :
Code:
1 2 3 4 5 6 7 8
|
TData * data = new TData();
TTypeA *typeA = new TTypeA();
data->type = typeA;
TDataFille *fille = new TDataFille(data);
et ailleurs :
TTypeA * a = (TTypeA*)fille->type; |
Je voudrais que a soit une parfaite copie de typeA, c'est à dire que l'attribut entierA vale 8 et que chaine vale "toto" (ce qui n'est pas le cas bien sûr avec le code ci dessus !)
merci beaucoup pour votre aide, j'ai hâte de voir où je bloque!!
Pascale38