Zugriff auf eine befreundete Klasse mittels free-function



  • Ich habe derzeit ein Designproblem. Ganz konrekt geht es darum, dass

    struct Child
    {
    };
    
    struct Parent
    {
      friend Child;
      friend void draw(const Child& child);
    
    private:
     int member_;
    };
    
    void draw(const Child& child)
    {
      child. ???
    }
    

    Ich habe sowohl die Klasse child, als auch die standalone function als freund der Klasse Parent deklariert. Ich möchte, in der draw Methode über child auf member_ der Klasse Parent zugreiden. Wo ist mein Denkfehler und wie wäre es designtechnisch besser zu lösen, wenn meine Draw als Parameter nur eine Referenz auf Child haben darf?

    danke schon mal


  • Mod

    Dann muss Child eben etwas entsprechendes anbieten. Bloß weil ich mit Child befreundet bin, ist das kein Freifahrtschein für jeden, der Child auch nur kennt (und dazu nicht einmal mit Child befreundet sein braucht!), an meinen privaten Sachen rumzuspielen!

    Das ist eine der beknacktesten Desginideen, die ich je gesehen habe.


Anmelden zum Antworten