liste von Objekt pointern

mmc_vw1200

Grünschnabel
Hi ich habe eine Liste von Container Klasse <list>

std::list<Node *> node_list;
die ich auch korrekt mit Nodes lade, die Klasse Node hat nun eine
Methode string Node::getName()

wenn ich nun die liste mit einem Iterator durchlaufe
sdt::list<Node *>::iterator node_iterator;
for( iterator.begin bis iterator.end, ++)
{
node_iterator->getName();
}

der Aufruf von getName klappt nicht, wieso ist mir ja auch einigermaßen einleuchtend, aber wie kann ich auf meien Node Objekte zugreifen?
bin für jede Hilfe Dankbar
 
Du solltest das folgendermaßen machen:
Code:
std::list<Node *> node_list;
// liste füllen
node_list.push_back(new Node(...));


//liste iterieren:
std::list<Node *>::iterator myiterator;
for(myiterator=node_list.begin(); myiterator != node_list.end(); myiterator++)
{
  // der iterator ist nun ein Zeiger auf ein Element, also konkret ein Node **
  // da du ja Zeiger in deiner Liste hast
  // also mal vereinfacht dargestellt:
  Node* pNode = *myiterator; // den iterator dereferenzieren!
  if(pNode) // sicher ist sicher :-)
    std::string myStr = pNode->getName();
}

So sollte das funktionierten, ich hab das jetzt nicht direkt getestet, aber versuch es mal so.

Daniel
 
Zurück