Bonjour, après avoir lu plusieurs tutoriels sur l'héritage en C++, je ne parviens pas à trouver la solution à mon problème. J'obtiens cette erreur de compilation:
En ce qui concerne mon code, j'ai une classe mère et une classe fille. La classe mère ne contient qu'une fonction virtuelle pure et j'implémente donc cette fonction "chez" la fille. Voici un code qui résume la situation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Undefined symbols for architecture x86_64: "_main", referenced from: start in crt1.10.6.o "vtable for Fille", referenced from: Fille::Fille() in Fille.o Fille::Fille() in Fille.o NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make: *** [main] Error 1
Mère.hpp
Fille.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class Mère { public: virtual double fonction(double dontcare) = 0; // Je la déclare pure }
Fille.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Fille::Fille():value(2) {} double fonction(double dontcare) { /*Implémentation de la méthode*/ }
J'ai dû louper une partie dans les tutoriels que j'ai lu, pouvez-vous m'éclairer ?merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Fille : public Mère { private: double value; public: Fille(); double fonction(double dontcare); }
Partager