Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Ataman
1 / 2 / 1
Регистрация: 27.10.2011
Сообщений: 33

Доступ к обобщенным вложенным структурам

17.12.2012, 22:53. Показов 583. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый Вечер. Подскажите пожалуйста как получить доступ ко вложенной структуре в main.cpp. Проблема с областью видимости Node (inner struct) в main.
есть обобщенный класс со вложенной структурой в BinaryTree.h :

Модераторам: Перенесите пожалуйста эту тему в раздел C++ для экспертов. Спасибо.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// simple binary tree
template <class T> class BinaryTree 
{
    template <class U>  struct Node 
    {
        Item<U> item; // holds data
        Node<U> *left, *right; // references to childs
        Node<U> *p; // reference to parent
    };
    Node<T> *root;
public:
    BinaryTree(); // default constructor
    Node<T>* newNode(Node<T> *father, const Item<T>&); // creates new node with data
    int BinaryTree<T>::depth(Node<T> *node); // Compute the depth of a node
    .....
    .....
};
Функции класса которые используют Node реализованы в .cpp файле без проблем осуществляется доступ к Node :

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "BinaryTree.h"
 
// receives tree, father node, key. creates new Node with data and return it
template <class T> 
typename BinaryTree<T>::Node<T>* BinaryTree<T>::newNode(Node<T> *father, const Item<T> &other)
{
    BinaryTree<T>::Node<T> *node = (BinaryTree<T>::Node<T>*)malloc(sizeof(BinaryTree<T>::Node<T>));
    ..................
}
 
// Compute the depth of a node
template <class T>
int BinaryTree<T>::depth(Node<T> *node) 
{
    ..................
}
 
 
// initialized only for oppurtunity of separation declaration & initiation of template class in multiple files
template Item<char>;
template BinaryTree<char>;

А вот тут проблема с областью видимости - main.cpp :

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// receives string in infix mode and reproduce the tree using postfix & infix data
template <class Q> BinaryTree<Q> RestoreTree(char*);
template <class T> void RestoreSubTree(char*, char*, BinaryTree<T>::Node<T>*, int);
 
void main()
{
    BinaryTree<char>::Node<char> n('c');  // ОШИБКА
}
 
// receives string in infix mode and reproduce the tree using postfix & infix data
template <class Q> 
BinaryTree<Q> RestoreTree(char *infix)
{
    char *postfix = ConvertToPostfix(infix);
 
    BinaryTree<char> tree;
    // reproduce the tree by recursive function
    RestoreSubTree(infix, postfix, tree.root, strlen(infix));
 
    return tree;
}
 
// НЕТУ ДОСТУПА К NODE
template <class T>
void RestoreSubTree(char *infix, char *postfix, BinaryTree<T>::Node<T> *node, int len)
{
    .......
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2012, 22:53
Ответы с готовыми решениями:

доступ к вложенным польз.контролам
Привет есть вот такая штука: &lt;Window &lt;Usercontrol 1 &lt;usercontrol_1.1...

доступ к разнородным структурам
Доброго времени суток, господа. Такая вот задача. Имеем множество разнородных структур, размещенных во flash. Ну, например, вот так: ...

Доступ к вложенным тэгам в user control
Кто знает как в своем user control получить доступ к вложенным тэгам? То есть например какой-то control выводит некий кусок интерфейса. А...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2012, 22:53
Помогаю со студенческими работами здесь

подскажите с обобщенным програмированием
Задание: Дан массив {a1,a2...an} нужно удалить все положительные элементы включая ноль. вот мой код. модуль alcodemo.cpp ...

Конструктор с обобщённым параметром
В классе есть поле IEnumerable&lt;string&gt; и надо в конструкторе передавать последовательность с любым типом. Что-то в таком духе (код не...

Работа с обобщенным методом
Всем доброго времени суток. public static void Metod&lt;T&gt;(T a1) where T: struct // Какое поставить ограничение, чтобы можно было...

Сделать метод с IAsyncResult обобщенным
Добрый день, как можно переписать данные методы, что бы вернуть значение T. UdpClient udpClient = new UdpClient(8001); private...

Работа с обобщённым классами и интерфейсами
Добрый день. Народ, у кого есть время, помогите, мне кажется я запутался в элементарных вещах. Вообщем задача такова. (Описание...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru