Bonjour,
Je ne comprend pas l'erreur que Dev-C++ m'affiche:
[Linker error] undefined reference to `Arbre2<int>::Noeud::operator==(Arbre2<int>::Noeud const&) const'
Pouvez-vous m'expliquer se qu'il essaye de me dire SVP.
Merci d'avance.
Bonjour,
Je ne comprend pas l'erreur que Dev-C++ m'affiche:
[Linker error] undefined reference to `Arbre2<int>::Noeud::operator==(Arbre2<int>::Noeud const&) const'
Pouvez-vous m'expliquer se qu'il essaye de me dire SVP.
Merci d'avance.
C'est relativement simple:
Cela signifie que tu as déclaré l'opérateur == dans ta classe Arbre, que tu l'as utilisé dans le code, mais qu'il ne trouve nulle part la définition de la fonction
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Vu qu'il s'agit d'une instanciation de template, je parie que la reponse est dans la FAQ.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Pourtant, je l'ai defini.
J'ai donc une classe abstraite Arbre2 qui contient une classe Abstraite Noeud:
Puis, j'ai une classe heritant de cette classe abstraite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 template<class T_info> class Arbre2 { public: class Noeud { friend class Arbre2; public: //... virtual bool operator==(const Noeud &) const; //... }; //... };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 template<class T_info> class Arbre2V : virtual public Arbre2 <T_info> { public: class NoeudV : virtual public Arbre2<T_info>::Noeud { friend class Arbre2V; public: bool operator==(const typename Arbre2<T_info>::Noeud &n) const{ cout << endl << "Noeud::operator==() debut et fin"; system("PAUSE"); const NoeudV * d = dynamic_cast<const NoeudV *>(&n); return (infos == d->infos && index == d->index); } //... }; //... };
Je vois une definition de
mais pas de
Code : Sélectionner tout - Visualiser dans une fenêtre à part Arbre2V<int>::Noeud::operator==(Arbre2<int>::Noeud const&) const
Peut-etre que rendre Arbre2<int>::Noeud::operator==(Arbre2<int>::Noeud const&) const pure suffirait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Arbre2<int>::Noeud::operator==(Arbre2<int>::Noeud const&) const
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager