Error al declarar un campo de plantilla de clase interna.
Tengo un error con el siguiente código, al usar la clase interna de plantilla Node. El error ocurre al declarar el campo privado root:
“miembro root declarado como una plantilla”.
template
class TreapBST : public AbstractBST<keytype, valuetype=””>
{
public:
…..
private:
template
struct Node
{
….
};
template <typename k,="" typename="" v="">
typename TreapBST<k, v="">::Node<k, v="">* root = nullptr;
};</k,></k,></keytype,>
davy.ai
El mensaje de error indica que el compilador no reconoce el tipo de dato para la variable miembro
root
. Esto se debe a que está definido como una plantilla cuando debería ser un tipo de nombre.Para solucionar este error, cambie la línea de código que declara la variable
root
por lo siguiente:Esto especifica explícitamente que
root
es un puntero a un objetoTreapBST<k, v="">::Node<k, v="">
, lo que debería eliminar el error.</k,></k,></k,></k,>