Bonjour,
J'ai rédigé le code suivant :
Code :
- #include <iostream>
- using namespace std;
- class Article
- {
- public :
- Article() {}
- Article(string denom) : name(denom) {}
- virtual double tva(double*);
-
- private:
- string name;
- };
- class Livre : public Article
- {
- public :
- Livre() {}
- Livre(string denom) : Article(denom) {}
- double tva(double* entree)
- {
- return (19.6);
- }
- };
- int main()
- {
- Livre Bouquin("Ra" );
- }
|
Mais, en retour, à la compilation, j'ai le message d'erreur suivant :
Code :
- main.o(.text+0x38): In function `main':
- : undefined reference to `vtable for Article'
- main.o(.text+0x73): In function `main':
- : undefined reference to `vtable for Article'
- main.o(.gnu.linkonce.r._ZTI5Livre+0x8): undefined reference to `typeinfo for Article'
- collect2: ld returned 1 exit status
|
Pourtant, je pensais avoir correctement rédigé ce code, qui combine à la fois les notions d'héritage et de méthode virtuelle.
J'ai déjà rédigé des codes avec des principes simialires qui compilait.
Pourriez-vous m'indiquer l'erreur, surement bête , que j'ai du commettre.
D'avance merci,
Nathan