zu blöd für c++
-
hallo zusammen!
ich habe zwei Funktionen. in der einen erzeuge ich ein Objekt auf dem Heap, dass ich dann in der anderen Funktion verändern will. dazu folgender code...
void treeWidget::insertFiles(const int folderId, QTreeWidgetItem* parent) { .... QTreeWidgetItem* currentItem = new QTreeWidgetItem( parent, entry); .... } void treeWidget::tree_itemSelectionChanged() { int test = currentItem->indexOfChild(currentItem); ....Rufe ich die Funktion indexOfChild in der Funktion insertFiles aus, lässt sich mein Programm compilieren.
Rufe ich die Funktion indexOfChild in der Funktion tree_itemSelectionChanged() auf erhalte ich folgenden Compilerfehler:
widget.cpp:196: Fehler: »currentItem« wurde in diesem Gültigkeitsbereich nicht definiertDiese Fehlermeldung ist für mich nicht verständlich, da ich das Objekt currentItem auf dem Heap erzeugt habe, und somit es auch in anderen Funktion möglich sein soll, darauf zuzugreifen.
-
der name ist aber nur in einer funktion bekannt, nicht überall
-
das heißt??
-
in der andren funktion ist der name logischerweise nicht bekannt, und du kannst ihn dementsprechend dort auch nicht nutzen
*edit*
du solltest mal versuchen, herauszufinden was scoping heist, und wie es in c++ funktioniert
-
was muss ich machen, damit ich das objekt in der anderen funktion verwenden kann
-
Was wohl? Ihn in der zweiten Funktion auch definieren

(wobei, wenn beide Funktionen mit der selben Variablen hantieren wollen, ist es wohl besser, aus der lokalen Variablen ein Klassenelement zu machen)
-
oder du sagst mas einfach

-
hat er doch

-
vielen dank