Как можно манипулировать данными, вложенными в частные классы, используя функцию друга - PullRequest
2 голосов
/ 01 февраля 2011
       class Hen {
            friend class Nest ;
            class Nest {
                    int n ;
                    friend class Egg;
                    class Egg {
                         int e ;
                    } *eg;
            } *nst ;
            public :
                friend void fill (  **!** ) ;
                ... // some code to show data
       };
  1. если **!** = Nest *; с помощью этой функции, как я могу манипулировать данными в Egg?
  2. если **!** = Egg *; с помощью этой функции, как я могу манипулировать данными в Nest?

Примечание: я пробовал и искал в интернете, но не смог найти ответа. Итак, я спрашиваю там, если эти вопросы тривиальны, простите меня!

1 Ответ

1 голос
/ 01 февраля 2011

Вам нужно сделать внешний класс другом вложенного класса:

class Hen {             
    class Nest {
    friend class Hen;
        class Egg {
        friend class Nest;
        };
    };
};
...