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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая по указанному в качестве параметра в командной строке файлу создаёт текстовый файл, содержащий листинг исходного файла http://www.cyberforum.ru/cpp-beginners/thread736011.html
Очень нужно написать программу на c++, а я даже условие не до конца понимаю! Буду очень благодарен за помощь в написании! Она не должна быть большой. Вот текст: Написать программу, которая по указанному в качестве параметра в командной строке файлу создаёт текстовый файл, содержащий листинг исходного файла в шестнадцатиричном формате по 16 байт в строке с указанием абсолютного смещения...
C++ Не читает структуру из файла Здравствуйте, такая проблема нужно прочитать из файла записаную структуру. пишет ее эта же программа. Проблема в том что при чтении ошибок не выдает, но при просмотре списка в итоге выясняется что ни чего она не прочитала. в чем может быть дело? целый день не могу понять, препод в универе тоже не помог не чем( вот код int ReadFile(ZavodList* &beg, ZavodList* &end) { FILE *f; Zavod data; f =... http://www.cyberforum.ru/cpp-beginners/thread736007.html
Разработать программу для работы с одномерным массивом C++
Доброго времени суток помогите начинающиму задание просто: Разработать программу для работы с одномерным массивом. Ее функции: - считывание элементов массива из файла (txt), где в первой строке можно задавать размерность массива; - нахождение индексов максимального и минимального элемента методом последовательного поиска; - определение среднего арифметического элементов, суммы элементов по...
Написать функцию для подсчёта произведения элементов матрицы лежащих ниже главной диагонали C++
Написать функцию для подсчёта произведения элементов матрицы лежащих ниже главной диагонали матрицы и создать функцию для сортировки столбцов матрицы Вот примерный код #include<locale> #include <iostream> #include <iomanip> #include<cstdlib> #include <ctime> using namespace std; int main() { setlocale(LC_CTYPE,"russian");
C++ Нужна бло-схема.подробности внутри http://www.cyberforum.ru/cpp-beginners/thread736002.html
#include<iostream.h> #include<conio.h> #include<stdio.h> #include<process.h> int n; void vvod(float a) { int i;
C++ таблица истинности, минтермы, макстермы Нужно написать 4 программы: -программа реализующая построение таблицы истинности от n аргументов -программа для вычисления минтермив для заданной таблицы истинности -программа для вычисления макстермив для заданной таблицы истинности -программа для вычисления минтермив и макстермив логической функции заданной логическим выражением О таблице истинности не много на лекция рассказывали, но... подробнее

Показать сообщение отдельно
Ataman
1 / 1 / 1
Регистрация: 27.10.2011
Сообщений: 33

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

17.12.2012, 22:53. Просмотров 246. Ответов 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)
{
    .......
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru