У меня есть структура словарьшаблон структуры в качестве аргумента функции
template<typename T, typename U>
struct Diccionary {
friend void insert<T, U>(Diccionario<T,U>& d, const T& c, const U& v);
friend void insertAux<T, U>(typename Diccionary<T,U>::Nodo* a, const T& c, const U& v);
private:
struct Nodo{
T t;
U u;
Nodo* left;
Nodo* right;
};
Nodo* root;
Nodo* iterator;
int size;
};
У меня есть ошибка с аргументами insertAux, я не знаю, как дать эту функцию указателя на узел. Проблема заключается в том, что узел находится в структурах, так что компилятор говорит мне:
error: no type named ‘Nodo’ in ‘struct Diccionario
Мне нужно дать эту функцию узла, потому что тогда я буду использовать рекурсивный алгоритм, и я не могу дать функции а Тип словаря, потому что дерево и словарь разные.
Определение типа слова перед объявлением друзей. – SergeyA
Каково определение 'Diccionario'? –
Но проблема в том, что тип te должен быть закрытым, а также функция insertAux является частной, но у меня есть tu. Итак, если тип по-прежнему является частным, что я могу сделать? Тип является приватным, но функция (является частной) должна быть знакомой – Serizba