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:
Le constructeur de la ligne A est déclaré comme suit:
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*/ [...] }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part LeafNode::LeafNode (Node * parentNode, LeafNode * original ,int kVar[], int kLeaf[], int &kLeafCount, int &leafCount)
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!
Partager