Erreur "Undefined reference to vtable" en C++ : causes et solution
Bonjour ! J'écris un petit projet en C++ utilisant le polymorphisme. J'ai une classe de base abstraite `Shape` et plusieurs classes dérivées : `Circle`, `Rectangle`. Dans la classe de base, une fonction virtuelle `area()` est déclarée. Quand j'essaie de compiler le projet avec g++, le compilateur renvoie l'erreur :
```
undefined reference to 'vtable for Shape'
```
Voici le code simplifié :
shape.h :
```cpp
#ifndef SHAPE_H
#define SHAPE_H
class Shape {
public:
virtual double area() = 0; // fonction virtuelle pure
virtual ~Shape() {}
};
#endif
```
circle.h :
```cpp
#include "shape.h"
class Circle : public Shape {
public:
Circle(double r);
double area() override;
private:
double radius;
};
```
circle.cpp :
```cpp
#include "circle.h"
Circle::Circ