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
Vu qu'il s'agit d'une instanciation de template, je parie que la reponse est dans la FAQ.
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
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