मैं सी ++ के लिए शुरुआत कर रहा हूं और मैं अमूर्त वर्ग और विरासत के बारे में अभ्यास कर रहा हूं।विरासत में सदस्य को क्यों अनुमति नहीं है?
यह मेरा सार वर्ग है:
#ifndef SHAPE_H
#define SHAPE_H
class Shape
{
public:
virtual void area();
virtual void perimeter();
virtual void volume();
};
#endif
यह मेरा ठोस वर्ग कि अमूर्त वर्ग को लागू करता है: मेरे Circle
कक्षा में
#include <iostream>
#include <cmath>
#include "Shape.h"
using namespace std;
class Circle : public Shape
{
public:
Circle(int);
private:
int r;
};
Circle::Circle(int rad)
{
r = rad;
}
void Circle::area()
{
cout << "Area of this cirle = " << 3.14 * pow(r, 2) << endl;
}
void Circle::perimeter()
{
cout << "Perimeter of this cirle = " << 2 * 3.14 * r << endl;
}
void Circle::volume()
{
cout << "Volume is not defined for circle." << endl;
}
मैं, area()
के तहत लाल लाइनों मिला perimeter()
, और volume()
, जो "Error: inherited member is not allowed"
दिखाया गया। मैं अपने वर्ग के पीपीटी के माध्यम से गया और जवाब के लिए googled लेकिन कोई भाग्य नहीं। किसी भी मदद की सराहना की है।
आप अभी भी एक व्युत्पन्न वर्ग में आभासी तरीकों घोषित करने के लिए है। –
'आकार' सार नहीं दिखता है। इसके सदस्य कार्यों के लिए शुद्ध आभासी होना चाहिए। इसके अलावा, इसे एक आभासी विनाशक घोषित करना चाहिए। –
'वर्चुअल ~ आकार() {}' –