Salut tout le monde!
Comme le nom de l'intitulé le dit je voudrais overloader un opérateur(le + pour être plus précis. Je travaille avec des listes chainées que j'ai codé auparavant(toutes mes fonctions fonctionnent très bien j'ai fait plein de test). Il s'agit d'un projet scolaire et voici la consigne pour l'overloading de l'opérateur :
"L3 = L1 + L2: Creates a new linked list, called L3, which consists of L1
and L2."
Ma fonction est censé me créer une nouvelle liste chainé qui contiendra tout les maillons de L1 et L2 à la suite. (j'ai overloader =avant bien entendu....), donc je me concentre sur L1+L2;
Dans mon cas le this est L1 et Source est L2;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SpecialLinkedList& SpecialLinkedList::operator+(SpecialLinkedList& Source) { SpecialLinkedList New; New.addAll(this); //permet de rajouter tout les maillons de this dans New New.addAll(&Source); //permet de rajouter tout les maillons de Source dans New. return New; }
Je sais que je retourne un SpecialLinkedList et que mon prototype dit que je doit renvoyer un SpecialLinkedList&, donc j'ai une incompatibilité...Mon erreur ne doit pas venir que de là(je suppose!). le compilateur me sort un avertissement qui me crash le programme à l'éxecution.Mon probleme est que je n'arrive pas à retourner un objet créer dans ma fonction...Si je lis ma liste chainée juste avant de faire le return, j'ai le résultat souhaité!
je suis ouvert à tout conseil...peut être il y a quelque chose que j'ai mal compris...
Je vous remercie par avance de votre aide![]()
Partager