Bonjour à tous,
Je vous écris car j’ai une question concernant les pointeurs. Avant de vous poser la question je vous explique mon architecture histoire de comprendre à peu près ce que je fais. J’espère ne pas être trop long mais bon .
Donc dans mon architecture, j’ai 3 classes. Appelons ces classes CFenetre, CAlgo et CElement. Tout commence dans la classe CFenetre car je modifie (gère) les attributs de CElement avec mon interface. Une fois les attributs mise a jour, je fais appel a la classe CAlgo pour faire ce que j’ai besoin, a savoir que j’utilise la classe CElement dans CAlgo aussi.
En gros, dans CFenetre, je crée un pointeur CElement et je l’alloue. Apres l’allocation je lie le pointeur dans la classe CAlgo, soit un code du genre pour CFenetre :

Dans le header :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
CElement *Element ;
CAlgo *Algo ;
Dans le constructeur de la classe CFenetre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Element = new CElement(Variables) ;
Algo = new CAlgo (Variables) ;
Algo->LinkClass(Element)
Dans le destructeur de la classe CFenetre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
delete Element ; 
delete Algo ;
//n'oublions pas les deletes :)
En cliquant sur des boutons de mon interface, je fais appel à des fonctions de ma classe CAlgo, et le lien dans la classe CAlgo pour CElement se fait avec LinkClass de la sorte suivante :

Dans le header de CAlgo:
Dans les sources:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void CAlgo::LinkClass(CElement *Elem)
{
	ElementA = Elem ;
}
Ma question est la suivante : Avec cette façon de faire, dans le destructeur de CAlgo, dois-je aussi faire un delete de ElementA ?

En espérant avoir été assez clair, merci de votre temps.
Eagl.