चाइल्ड2 से c1 को एक्सेस करने का सही तरीका क्या है?

कुछ संदर्भ प्राप्त करने के लिए, कल्पना करें कि Child1 और Child2 टेक्स्टबॉक्स हैं, और Child2 को c1.member वर्तमान मान के साथ निर्णय लेने की आवश्यकता है। यह सिर्फ कुछ डमी कोड है जो अधिक स्पष्ट दिखाई देगा:

class Parent
{
public:
    Parent()
    {

    }

    ~Parent()
    {

    }

    class Child1
    {
    private:
        int i;
    };

    class Child2
    {
        Child2()
        {
            // somehow access c1.i;
        }

    };

private:
    Child1 c1;
    Child2 c2;
};
0
panosl 4 अक्टूबर 2018, 17:40

1 उत्तर

सबसे बढ़िया उत्तर

इस प्रश्न पर मिली उपयोगी टिप्पणियों के बाद, यहाँ एक समझदार समाधान है:

class Parent
{
public:
    class StepTwo;

    Parent():
        // we're initializing c2 here because it does not have a default
        // constructor.
        c2(c1)
    {

    }

    ~Parent()
    {

    }

    class Child1
    {
    private:
        int i;
        // Making Child2 a friend class, allows it to access access private
        // members of Child1.
        friend class Child2;
    };

    class Child2
    {
    public:
        Child2(Child1 &r_c1)
        {
            pC1 = &r_c1;

            // pC1 can access everything from Child1 with ease.
        }
    private:
        Child1* pC1;
    };

private:
    Child1 c1;
    Child2 c2;
};
0
panosl 5 अक्टूबर 2018, 16:56