es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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,>

Tags:  ,

Answer

  1. Avatar for 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:

    typename TreapBST<k, v="">::Node<k, v="">* root = nullptr;
    

    Esto especifica explícitamente que root es un puntero a un objeto TreapBST<k, v="">::Node<k, v="">, lo que debería eliminar el error.</k,></k,></k,></k,>

Comments are closed.