尝试将另一个struct中定义的私有结构作为参数传递

时间:2017-12-02 13:18:20

标签: c++ struct

我已经尝试了很长时间将一个私有结构(在另一个结构中定义)作为函数的参数传递,但我总是得到同样的错误:

`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){
...
}

如何指定参数的写入方式? 非常感谢!!

0 个答案:

没有答案