我有我的結構詞典模板結構作爲函數參數
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