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
En tout cas je "bloque" !!

J'ai les classes suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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