Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
#1

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

26.03.2013, 18:13. Просмотров 778. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Есть такой класс:
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 (желательно без статики)? Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доступ из вложенного класса к членам "родителя" (C++):

Как вызвать метод "верхнего" из вложенного класса - C++
class Fraction{ friend class Calk; long int a; unsigned short int b; public: void Read( Fraction &a, Fraction &b, int...

Доступ к членам класса - C++
Есть два класса: #include "stdafx.h" #include <iostream> using namespace std; class CPerson { /*закрытые члены*/ private:...

Доступ к членам класса - C++
Объект класса не может получить доступ к своим переменным?

Доступ к private членам класса - C++
Почему при таком объявлении не работает оператор вывода, по идее он же объявлен как друг класса и должен иметь доступ к членам этого...

Доступ к закрытым членам класса(шаблона) - C++
Вопрос почему компилятор выдает ошибку в функции main? Ситуация следующая имеется шаблон (класс) элемента списка, реализован шаблон (класс)...

Доступ к закрытым членам базового класса - C++
помогите понять что я не так сделал ? #include <iostream> using namespace std; class A { int PrA1; public: int...

5
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,356
Записей в блоге: 2
Завершенные тесты: 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;
        }
};
0
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
26.03.2013, 18:36  [ТС] #3
Жесть. А можно вложенный класс унаследовать от основного?
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,356
Записей в блоге: 2
Завершенные тесты: 1
26.03.2013, 18:40 #4
Цитата Сообщение от WennY Посмотреть сообщение
А можно вложенный класс унаследовать от основного?
Нет, но если бы было можно, то это была бы еще бОльшая жесть, что то, что я показал
0
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
26.03.2013, 18:53  [ТС] #5
На кой вообще тогда эти вложенные, просто по приколу чисто разве что..
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,356
Записей в блоге: 2
Завершенные тесты: 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;
};
0
26.03.2013, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 19:41
Привет! Вот еще темы с ответами:

Доступ к членам одного класса с другого - C++
Есть три файла: A.cpp: #include &quot;B.cpp&quot; class AA { int A; public: AA(int a) { A = a;

"Двойной" доступ к переменным класса - C++
Господа, прошу совета в изложенной ниже ситуации. Часто мне встречается в различных вариациях, поэтому есть потребность в изящном решении....

Как получить доступ к членам класса из функций - C++
Есть код типа //***************************************************************************** func1() { body; } func2() ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru