Bonjour,
J'essaie actuellement d’implémenter une bibliothèque mathématique pour un de mes projets.
J'ai donc commencé avec la classe Ensemble que j'ai définie comme suit :
Où la fonction union renvoie l'union des deux ensembles, à savoir un ensemble dont la fonction contains vérifie que l'élément e se trouve bien dans un des deux ensembles donnés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Set { public: Set& union(Set&); virtual bool contains(Element e) = 0; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class SetUnion : public Set { private: Set &set1,&set2; public: SetUnion(Set&,Set&); virtual bool contains(Element); };Jusque là tout va bien mais après je dois implémenter la fonction Set::union... Et là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SetUnion::SetUnion(Set& s1,Set& s2):set1(s1),set2(s2){} bool SetUnion::contains(Element e) { return set1.contains(e) || set2.contains(e); }
Mais là ça coince car le l'objet duquel je vais retourner la référence va être détruit et la référence ne sera plus valide (le compilateur émet aussi une erreur de compilation).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Set& Set::union(Set& s) { return SetUnion(*this,s); }
Maintenant ce que je voudrais savoir c'est comment implémenter ceci (si possible sans pointeur) parce que là je n'ai aucune idée.
Partager