विरासत में परेशानी होने के कारण। मुझे नहीं पता कि मैं क्या गलत कर रहा हूं।सी ++ त्रुटि: अमूर्त वर्ग प्रकार की वस्तु की अनुमति नहीं है: शुद्ध वर्चुअल फ़ंक्शन में कोई ओवरराइडर नहीं है
FigureGeometry.h
#ifndef FIGUREGEOMETRY
#define FIGUREGEOMETRY
static const float PI = 3.14159f;
class FigureGeometry
{
public:
virtual float getArea() const = 0;
virtual float getPerimeter() const = 0;
};
#endif
Circle.h
#ifndef CIRCLE
#define CIRCLE
#include "FigureGeometry.h"
class Circle:public FigureGeometry
{
float radius;
public:
Circle(float theRadius)
{
radius = theRadius;
}
float getRadius() {return radius;}
float getArea() {return getRadius() * getRadius() * PI;}
float getPerimeter() {return getRadius() * 2 * PI;}
};
#endif
और फिर main.cpp में, लाइन युक्त "Circle c1(5);"
पर मैं त्रुटि मिलती है:
21 IntelliSense: object of abstract class type "Circle" is not allowed:
pure virtual function "FigureGeometry::getArea" has no overrider
pure virtual function "FigureGeometry::getPerimeter" has no overrider c:\Users\moog\Documents\Visual Studio 2012\Projects\data structures 3\data structures 3\main.cpp 9 9 data structures 3
'getArea()' और 'getArea() const' दो अलग-अलग फ़ंक्शन हैं। –