comment pointer sur la meme instance?
Bonjour,
J'ai la classe A suivante qui possède deux classes filles A1 et A2 :
A.h
Code:
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();
} |
A.cpp
Code:
1 2 3 4 5 6 7 8 9 10
|
A::A(B var1)
{attr1=new B(var1);
}
A::~A()
{
delete attr1;
} |
A1.h
Code:
1 2 3 4 5
|
class A1
{
A1(B1);
} |
A1.cpp
Code:
1 2 3 4 5
|
A1::A1(B1 var)
{
this->attr1=new B1(var);
} |
Dans le main.h
Code:
1 2 3 4
|
B1 b1("bb",5),
A1 a1(b1);
A1 a2(b1) |
Mon problème :
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.