Bonjour,

Le principe des pointeurs et des références est assez nouveau pour moi et, après plusieurs heures de recherche, je n'arrive toujours pas à comprendre comment arranger mon code.

J'ai la méthode suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void LeafNode::callConstructor(Node& parentNode, int kVar[], int kLeaf[], int &kLeafCount, int &leafCount){
[...]
LeafNode * tmp = new LeafNode( parentNode, this ,kVar , kLeaf, kLeafCount, leafCount ); /*A*/
[...]
}
Le constructeur de la ligne A est déclaré comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
LeafNode::LeafNode (Node * parentNode, LeafNode * original ,int kVar[], int kLeaf[], int &kLeafCount, int &leafCount)
La méthode callConstructor modifie à un certain moment l'objet parentNode, c'est pourquoi je le met en référence (&). Mais, à partir de là, tout s'embrouille entre référence, pointeur et objet.

Est-ce qu'il faut vraiment utiliser une référence dans cette situation? Si non, comment je peux arriver à modifier l'objet? Si oui, comment je peux convertir cette référence en pointeur pour l'envoyer vers mon constructeur de LeafNode?

Merci d'avance, et pardonnez mon ignorance, je débute!