我有我的结构词典模板结构作为函数参数
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类型必须是私人的,也de insertAux功能是私人的,但我已经把它放在那里。所以如果类型仍然是私人的,我可以做什么?该类型是私有的,但函数(私有)必须是朋友 – Serizba