001
11.09.2010, 01:41 Uhr
0xdeadbeef
Gott (Operator)
|
Vermutlich hast du die Dreierregel missachtet und keinen Kopierkonstruktor definiert. In dem Fall wird die Klasse kopiert, hält damit den selben Zeiger wie das temporäre Objekt, und sobald eines davon zerstört wird, zerstört dessen Destruktor das Objekt, auf das der Zeiger zeigt und invalidiert damit die Zeiger aller anderen Objekte.
Dass das ganze im zweiten Fall funktioniert, wird im Zweifel daran liegen, dass der Compiler die Kopie wegoptimiert. Das Verhalten ist natürlich nach wie vor undefiniert. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 11.09.2010 um 01:44 Uhr von 0xdeadbeef editiert. |