Lista List zbudowana na obiektach

0

Witam.
Mam pewien problem z listą list zbudowana na klasach
Staram się zbudować liste obiektów klasy (miasto) gdzie w każdym elemencie bedzie poczatek 2 listy obiektów typu (trasa).
Do tego etapu działa dobrze ale jak staram sie w klasie trasa do wskaznika na obiekt typu miasto przypysiac mu dany obiekt z tej 1 listy wysypuje mi błędem
"cannot convert LISTA::element*' to element*' in assignment "
Ciekawi mnie czy istnieje możliwosc przypisania tak wskaznika

class  LISTA{
       public:
           class trasa{
                 public:
                        unsigned node;
                        trasa *next;
                        element *nttras;
                        trasa();
                        ~trasa();}; 

           class element{
                 public:
                 string miasto;
                 unsigned int population;

                 public:
                 element *next,*prev;
                 trasa *nexttrasa;
                 element();
                ~element();
                };
                  element *head;  
                 
                 
           LISTA();
           ~LISTA();
           
           void dodaj_eliTrase(string from,string too ,unsigned val2 );

};
 

Funkcja dodajaca trase wygląda tak

 void LISTA::dodaj_eliTrase(string from,string too ,unsigned val2 ){
     element *ptrfrom,*ptrtoo;
     ptrfrom=head;
     ptrtoo=head;
     while(ptrfrom->miasto!=from){ptrfrom=ptrfrom->next;}
     while(ptrtoo->miasto!=too){ptrtoo=ptrtoo->next;}
     trasa *nowy,*ptrTrasa;
     ptrTrasa=NULL;
     nowy=NULL;
     nowy = new trasa;
     nowy->node=val2;
     nowy->next=NULL;
   nowy->nttras=ptrtoo; //Miejsce błędu
     ptrTrasa=ptrfrom->nexttrasa;
           if(ptrfrom->nexttrasa==NULL){ptrfrom->nexttrasa=nowy;}
             else{
             while(ptrTrasa->next!=NULL){ptrTrasa=ptrTrasa->next;}
             ptrTrasa->next=nowy;}
             }
0

kod tak jak podałeś się nie skompiluje, bo używasz typu element przed jego definicją.
prawdopodobnie więc dodałeś deklarację class element; gdzieś wcześniej w kodzie (albo masz inny typ o tej samej nazwie), co było błędem bo spowoduje dokładnie taki błąd.

class  LISTA{
       public:
           class element; // tutaj
           class trasa{
           ...
0

Dzięki wielkie.
Wszystko działa jak należy ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1