मेरा कोड है -व्युत्पन्न * से आधार * के बीच रूपांतरण निजी विरासत के साथ विफल क्यों होगा?
#include<iostream>
using namespace std;
class base
{
public:
void sid()
{
}
};
class derived : private base
{
public:
void sid()
{
}
};
int main()
{
base * ptr;
ptr = new derived; // error: 'base' is an inaccessible base of 'derived'
ptr->sid();
return 0;
}
यह संकलन समय त्रुटि देता है।
error: 'base' is an inaccessible base of 'derived'
चूंकि संकलक बेस क्लास sid()
को आज़माकर कॉल करेगा और मुझे यह त्रुटि क्यों मिलती है? क्या कोई इसे समझा सकता है।
आपने विधि 'वर्चुअल' घोषित नहीं किया था। आप वास्तव में क्या त्रुटि प्राप्त कर रहे हैं? – Dirk
अपने वर्तमान रूप में इसमें फ़ंक्शन 'sid()' के साथ कुछ लेना देना नहीं है। आप निजी विरासत का उपयोग कर रहे हैं इसलिए 'व्युत्पन्न *' से 'आधार *' में रूपांतरण विफल हो रहा है। क्या आप यही पूछ रहे हैं या यह विधि 'sid() 'के साथ कुछ करना है? – Naveen
[संरक्षित व्युत्पन्न वर्ग] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/433965/protected-derived-class) – kennytm