C++ में "Undefined reference to vtable" त्रुटि: कारण और समाधान
नमस्ते! मैं polymorphism का उपयोग करके C++ में एक छोटा प्रोजेक्ट लिख रहा हूँ। मेरे पास एक abstract base class `Shape` और कई derived classes हैं: `Circle`, `Rectangle`। Base class में एक virtual function `area()` घोषित है। जब मैं g++ का उपयोग करके प्रोजेक्ट को compile करने का प्रयास करता हूँ, तो compiler यह error देता है:
```
undefined reference to 'vtable for Shape'
```
यहाँ सरलीकृत कोड है:
shape.h:
```cpp
#ifndef SHAPE_H
#define SHAPE_H
class Shape {
public:
virtual double area() = 0; // pure virtual function
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