S
Aha. Kann sein.
Um das analysieren zu können, müssten wir wohl "ein wenig mehr main sehen".
Ich finde allerdings die "IntArray"-Klasse ein wenig seltsam: Woher bekommt das Objekt denn seinen Speicher ?
Im StandardCtor wird er auf "nix" gesetzt, im CpyCtor erzeugt er sich selbst welchen. D.h. aber, dass ein Objekt, dass "per Copy erzeugt" wurde, ein delete[] durchführen muß, während ein "per Standard konstruiertes" das (vermutlich) nicht darf.
Wahrscheinlich kommt daher auch Deine "DTor-Verwirrung" ...
Außerdem wird beim operator=() dann noch Speicher geholt, ohne dass der vorher benutzte freigegeben wird (hat vermutlich dieselbe Ursache: Man weiß ja nicht, ob das Objekt so oder so erzeugt wurde).
Letztlich sollte die Klasse den Speicher komplett kapseln (non-public-Attribute und keine "Speicherersetzung von Außen" möglich).
Ich denke, EvilEpsilon erzeugt mehrere IntArrays, die auf denselben Speicher verweisen und manipuliert den dann (evtl. ungewollt) von Außen auch noch.
NACHTRAG: Falls Du das nicht nur zum Lernen verwenden möchtest, sondern tatsächlich irgendwo "brauchst", wäre std::vector<int> bestimmt die bessere Wahl...
Gruß,
Simon2.