class a //my base abstract class
{
public:
virtual void foo() = 0;
};
class b : public a //my child class with new member object
{
public:
void foo()
{}
int obj;
};
int main()
{
b bee;
a * ptr = &bee;
ptr->obj; //ERROR: class a has no member named "obj"
}
मेरा प्रश्न है, मैं कैसे "obj" सदस्य का उपयोग कर सकते है जब मैं आधार वर्ग ("एक") के लिए एक सूचक है बच्चे वर्ग की ओर इशारा करते ("ख के लिए सूचक का उपयोग कर के सदस्यों ") वस्तु? मुझे पता है कि कास्टिंग को चाल करना चाहिए लेकिन मैं बेहतर समाधान की तलाश में हूं।तक पहुँचना बच्चे कक्षा एक आधार Abstact वर्ग
कुछ संदर्भ मदद करेंगे। आप ऐसा क्यों करना चाहते हैं? यदि कास्टिंग एक विकल्प नहीं है तो आपको अपने व्युत्पन्न वर्ग में वर्चुअल फ़ंक्शन ओवरराइड करना होगा जो उस सदस्य को संदर्भ या सूचक देता है। हालांकि, यह आम तौर पर encapsulation तोड़ता है। यह हमें वापस लाता है कि आप व्युत्पन्न वर्ग सदस्य को बेस क्लास में पॉइंटर के माध्यम से क्यों एक्सेस करना चाहते हैं? – Void
@ शून्य शायद आप सही हैं, मुझे डिज़ाइन बदलना चाहिए। – user1873947