我已经尝试了很长时间将一个私有结构(在另一个结构中定义)作为函数的参数传递,但我总是得到同样的错误:
`cmt.h:17:85: error: expected identifier before ‘struct’
template<typename C, typename D, typename T> bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);
cmt.h:17:85: error: expected ‘(’ before ‘struct’
cmt.h:17:104: error: expected primary-expression before ‘const’
template<typename C, typename D, typename T> bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);´
我的主要结构是这样定义的:
template<typename C, typename D, typename T> struct CMT{
//friends...
friend bool existeClave<C,D,T> (CMT<C,D,T>& cmt, const C& clave);
friend bool existeClaveI<C,D,T> (typename CMT<C,D,T>::struct Nodo *nodo, const C& clave);
private:
struct Nodo{
C clave;
D dato;
T tiempo;
bool tieneTiempo;
struct Nodo *izquierda;
struct Nodo *derecha;
};
int numNodos;
struct Nodo *raiz;
Pila<struct Nodo*> iterador;
};
这是existeClaveI本身的功能:
template<typename C, typename D, typename T>
bool existeClaveI(typename CMT<C,D,T>::struct Nodo *nodo, const C& clave){
...
}
如何指定参数的写入方式? 非常感谢!!