Bonjour,
J'ai la classe A suivante qui possède deux classes filles A1 et A2 :
A.h
A.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { private : B* attr1; //B est une classe mère qui possède deux classes filles B1 et B2 public: A(B*); ~A(); }
A1.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 A::A(B var1) {attr1=new B(var1); } A::~A() { delete attr1; }
A1.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class A1 { A1(B1); }
Dans le main.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A1::A1(B1 var) { this->attr1=new B1(var); }
Mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 B1 b1("bb",5), A1 a1(b1); A1 a2(b1)
je veux que les deux instances avoir la meme b1. quand je fais le test d'egalité suivant a1.attr1=a2.attr1 je ne trouve pas que ces deux instances possèdent la meme b1(Résultat: deux adresses différentes).
J'essaye de modifier this->attr1=new B1(var); dans le constructeur de A1 à attr1=&var mais cette instruction lance une exception.
Aidez moi svp et Merci.
Partager