Форум программистов, компьютерный форум CyberForum.ru

Доступ из вложенного класса к членам "родителя" - C++

Восстановить пароль Регистрация
 
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
26.03.2013, 18:13     Доступ из вложенного класса к членам "родителя" #1
Доброго времени суток. Есть такой класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class XML
{
    protected:
        int root;
 
    public:
        class reader
        {
            public:
                void read();
        };
 
        XML()
        {
            root = 1;
        }
};
 
void XML::reader::read()
{
    //root;
}
Вопрос: как из метода read дорваться до переменной XML::root (желательно без статики)? Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 18:13     Доступ из вложенного класса к членам "родителя"
Посмотрите здесь:

C++ Доступ к членам класса класса
C++ "Двойной" доступ к переменным класса
C++ как вызвать метод "верхнего" из вложенного класса
доступ к private членам класса C++
C++ Доступ к закрытым членам базового класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
26.03.2013, 18:23     Доступ из вложенного класса к членам "родителя" #2
Никак! Разве что сделать такой костыль
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class XML
{
    protected:
        int root;
 
    public:
        class reader;
        friend class reader;
        class reader
        {
            public:
                reader (XML &xml) : xml_(xml) {}
                void read() {/* теперь можно делать так */ int root = xml_.root;}
             private:
                 XML &xml_;
        };
 
        XML()
        {
            root = 1;
        }
};
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
26.03.2013, 18:36  [ТС]     Доступ из вложенного класса к членам "родителя" #3
Жесть. А можно вложенный класс унаследовать от основного?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
26.03.2013, 18:40     Доступ из вложенного класса к членам "родителя" #4
Цитата Сообщение от WennY Посмотреть сообщение
А можно вложенный класс унаследовать от основного?
Нет, но если бы было можно, то это была бы еще бОльшая жесть, что то, что я показал
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
26.03.2013, 18:53  [ТС]     Доступ из вложенного класса к членам "родителя" #5
На кой вообще тогда эти вложенные, просто по приколу чисто разве что..
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
26.03.2013, 19:41     Доступ из вложенного класса к членам "родителя" #6
Цитата Сообщение от WennY Посмотреть сообщение
На кой вообще тогда эти вложенные, просто по приколу чисто разве что..
Ну почему, это бывает полезно. Например класс может иметь в качестве члена объект вложенного класса.
В списке обычно так делают
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <class T>
class List
{
private:
    struct Node
    {
        T val;
        Node *next;
    };
     
    Node node;
};
Yandex
Объявления
26.03.2013, 19:41     Доступ из вложенного класса к членам "родителя"
Ответ Создать тему
Опции темы

Текущее время: 11:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru