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:
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.cppCode:
1
2
3
4
5 class Mère { public: virtual double fonction(double dontcare) = 0; // Je la déclare pure }
Fille.hppCode:
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 :ccool:Code:
1
2
3
4
5
6
7
8 class Fille : public Mère { private: double value; public: Fille(); double fonction(double dontcare); }