class Room{
public:
void ColorRoom(){};
};
class House{
public:
Room* GetRoom(){return &m_room;}
private:
Room m_room;
};
1) कमरा घर के बिना अस्तित्व में नहीं हो सकता है, एक घर "एक कमरा" है। (संरचना)
2) रंगीन कमरे के लिए एक और तरीका हाउस में एक विधि होगी जो कक्ष विधि में रंगरूम का आह्वान करेगी लेकिन फिर यह प्रतिनिधिमंडल का अधिक होगा। (मैं इससे बचना चाहता हूं)
एकमात्र तरीका जो मैं देखता हूं वह उपर्युक्त है लेकिन निजी सदस्य के संदर्भ में लौटने जैसा लगता है ओओपी तोड़ रहा है। क्या यह एक अच्छा डिजाइन है?क्या शुद्ध संरचना ओओपी अवधारणाओं को तोड़ती है?
यह अच्छी तरह से काम करता है, और एक संक्षिप्त स्पष्टीकरण के लिए, मेरा जवाब देखें। –
ध्यान दें कि 'आभासी' * ओवरराइडिंग * को संदर्भित करता है * * ओवरलोडिंग * नहीं। – Dario
क्या आप विरासत के बिना किसी फ़ंक्शन को ओवरराइड कर सकते हैं? दूसरा, यदि उपयोगकर्ता कमरे को संशोधित करना चाहता है तो ऐसा लगता है कि उन्हें सदन की एक विधि का आह्वान करने की आवश्यकता है जो बदले में प्रतिनिधि पद्धति के समान कमरे की विधि का आह्वान करेगा। –