C++ Vektor-Heaps anstelle des Stacks

Ich habe ein Interessantes problem. Ich habe eine Funktion in C++, liefert einen vector mit voll-Klassen. Sobald der Vektor zurückgegeben wird, ruft es deconstrustors für jede Klasse, die element im Vektor. Das problem ist ein offensichtlicher, dass die Daten zerstört werden, wo-class-Punkte auf die Zeiger, die freigesetzt werden, wenn ein Objekt zerstört wird. Ich kann nur annehmen, dass die deconstructors genannt werden, da ein Vektor ist, auf dem stack, nicht auf dem heap.

Also die Frage ist: gibt es trotzdem immer wieder Vektor, der aus einer Funktion, ohne dass es zerstört wird? Oder müsste ich entweder einen Zeiger übergeben zu return Vektor als Eingabe für die Funktion.

Alex

Sind Sie der Rückgabe einer Referenz auf ein temporäres Objekt? Es ist nicht wirklich klar für mich, was Sie beschreiben. Source-code?
Nun habe ich wieder einen ganzen Vektor, nicht ein Zeiger darauf.
Ich nehme an du dein problem gelöst - aber es ist nur möglich zu spekulieren, ohne zu sehen, den tatsächlichen code. Btw, ein Verweis ist kein Zeiger.

InformationsquelleAutor Alex | 2011-02-13

Schreibe einen Kommentar