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.

Cómo navegar por una lista en C++

Estoy teniendo un problema aquí y pensé que encontraría una respuesta fácil en Internet, pero han pasado 1 hora y no puedo resolverlo. Parece tan simple, pero no encuentro la forma…

Tengo 2 clases:

“`c++
#include
#include

using namespace std;

class classB;

class classA{
private :
string name;
list<classb*> listClassB;

public:
void getListClassB() const;
};

class classB{
private:
string name;
list<classa*> listClassA;

public:
void getListClassA() const;
};


Lo que hago en el método `getListClassB()` es: ```c++ void classA::getListClassB() const { for(list<classb*>::iterator it = listClassB.begin(); it != listClassB.end; it++){ //Codigo } }

Visual Studio Code me dice que hay un error en listClassB de list<classb*>::iterator it = listClassB.begin()

El error completo es:

none
there is no appropriate user-defined conversion of 
"std::_List_const_iterator<><><true,></true,><classb *="">, std::_List_iter_types<classb *,="" size_t,="" ptrdiff_t,="" classb="" **,="" classb="" *const="" *,="" classb="" *&,="" classb="" *const="" &,=""></classb><classb *,="" void="" *=""> *> > > >" in "std::_List_iterator<><><true,></true,><classb *="">, std::_List_iter_types<classb *,="" size_t,="" ptrdiff_t,="" classb="" **,="" classb="" *const="" *,="" classb="" *&,="" classb="" *const="" &,=""></classb><classb *,="" void="" *=""> *> > > > >"

EDIT:

Ok, gracias nuevamente por todo su tiempo, pero este error me está volviendo loco.

Completé un poco el código para ser más explícito sobre mi trabajo.

No profundizo porque es un trabajo de universidad en Francia, y se trata de clases UML, por lo que está vinculado con otras clases…</classb></classb></classa></classb>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un error de sintaxis en el método getListClassB (). La línea for (list <classb *="">:: iterator it = listClassB.begin(); it! = listClassB.end; it ++) debería estar for (list<classb *="">:: iterator it = listClassB.begin(); it! = listClassB.end(); it ++). La falta de paréntesis después de end causa el mensaje de error.

    Además, es importante tener en cuenta que como listClassB es una variable miembro de classA, no se puede acceder desde fuera de la clase sin una instancia de classA. Por lo tanto, el método getListClassB () no debe declararse const, ya que está modificando el estado interno de classA.

    Si hay algún otro error o problema, se necesitaría más información para diagnosticarlos. También es importante asegurarse de que se incluyan todos los encabezados necesarios (como <string> en este caso).

Comments are closed.