Avatar ·

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