2011-04-26 15 views
11

मुझे दो इंटरफेस से उत्तराधिकारी होना आवश्यक है, दोनों में एक ही विधि है जो दोनों मामलों में बिल्कुल वही कार्य करना चाहिए। क्या यह कोड सही है या नहीं? मुझे किसी प्रकार की प्रॉक्सी कक्षा के लिए इसकी ज़रूरत है। उत्तर के लिए धन्यवाद।सी ++ इंटरफ़ेस एक ही विधि के साथ एकाधिक विरासत

class InnerInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class OuterInterface { 
    virtual int getID() const = 0; 
    //... 
}; 
class Foo : public InnerInterface, public OuterInterface { 
    virtual int getID() const; 
    //all abstract methods 
}; 
+8

विधियां 'आभासी' होना चाहिए, है ना? –

+0

बेशक। सही किया। –

+0

अच्छा सवाल - शीर्षक से मैं एक अच्छा साधारण हीरा विरासत (इसलिए वर्चुअल विरासत का उपयोग करें) की उम्मीद कर रहा था, लेकिन इसके साथ मुझे यकीन नहीं है। आप निश्चित रूप से दो नामित विधियों को अलग-अलग नाम से ओवरराइड करने के लिए स्कोप रिज़ॉल्यूशन का उपयोग कर सकते हैं, लेकिन इसका मतलब डुप्लिकेट कोड है, इसलिए यह दिलचस्प है। – Steve314

उत्तर

7

हाँ, यह सही है। एकल getID() विधि वर्चुअल विधियों दोनों को ओवरराइड कर सकती है।

+1

क्या आप इसके बारे में कुछ जानकारी प्रदान कर सकते हैं और परिणाम क्या होगा? धन्यवाद! – wegginho

संबंधित मुद्दे