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

Обращение к обобщенным вложенным структурам - C++

17.12.2012, 19:48. Просмотров 244. Ответов 0
Метки (Все метки)

Добрый Вечер. Подскажите пожалуйста как получить доступ ко вложенной структуре в main.cpp. Не находит Node в мейне.
есть обобщенный класс со вложенной структурой в BinaryTree.h :

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 файле таким образом :

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)
{
    .......
}

http://www.cyberforum.ru/cpp-beginners/thread1919250.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2012, 19:48
Готовые ответы и решения для C++ Обращение к обобщенным вложенным структурам:

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

Задача по вложенным циклам
Здравствуйте! Помогите растолковать код, не могу понять какой цикл к чему...

Структура с вложенным массивом структур
Здравствуйте! Хочу создать некое подобие файловой системы. есть 2 структуры...

Нужны пояснения по вложенным классам
задался вот таким вопросом, почему не получается объявить вложенный класс...

Задание по структурам
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;iomanip.h&gt;...

0
Обращение к обобщенным вложенным структурам C++    
Другие темы раздела
C++ Метод решета http://www.cyberforum.ru/cpp-beginners/thread735654.html
с помощью метода решета решить задачку Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5.
C++ Линейный алгоритм (Перевод величин из одной единицы измерения в другую) Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Перевод величин из одной единицы измерения в другую. Пользователь вводит значение в единице измерение Quart(кварта), программа... http://www.cyberforum.ru/cpp-beginners/thread735648.html
C++ создал прогу, которая должна каждый раз рандомно записывать числа в массив и находить сколько чисел есть которые начинаются с цифры заданной пользоват
В общем создал прогу, которая должна каждый раз рандомно записывать числа в массив и находить сколько чисел есть которые начинаются с цифры заданной пользователем. все время выводит 0. #include...
C++ Отсортировать элементы строк матриц в порядке неубывания. Вычислить кубы полученных матриц
Даны две вещественные квадратные матрицы (размер вводится пользователем). Отсортировать элементы строк матриц в порядке неубывания. Вычислить кубы полученных матриц. Разработка алгоритма решения...
C++ Дано целое число, лежащее в диапазоне от –99 до 99 http://www.cyberforum.ru/cpp-beginners/thread735603.html
Дано целое число, лежащее в диапазоне от –99 до 99. Вывести строку — словесное описание данного числа вида "отрицательное двузначное число", "нулевое число", "положительное однозначное число" и т.д....
C++ Как заставить программу запустить другую программу Как заставить программу запуститься в спрятанном режиме, чтобы её можно было найти только в Дистептчере задач во вкладке процессы и запустить другую программу в таком же режиме? подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru