Membervariablen verändern sich
-
Ich habe folgendes Problem:
Ich initialisiere eine Membervariable im Konstruktor, aber in einer später aufgerufenen Membermethode haben die Variablen auf einmal andere Werte.
Wie kann ich diesem Fehler auf die Spur kommen?
-
PS: Es handelt sich um VC++ 10 SP1.
Gibt es eine Möglichkeit, Schreibzugriffe auf diese Variable abzufangen?
-
Mit einem Debugger.
Ich tippe mal auf versteckte Konstruktoraufrufe und/oder versteckte Kopien, in Kombination mit nicht-sinnvoller Definition dieser Aktionen.
ich hasse den compiler schrieb:
Gibt es eine Möglichkeit, Schreibzugriffe auf diese Variable abzufangen?
Ja, das können Debugger in der Regel. Aber ich tippe mal stark da drauf, dass du dir unterschiedliche Variablen anguckst, ohne es zu merken. Die andere Möglichkeit wäre, dass du irgendwo Arraygrenzen verletzt, dies würde das Phänomen auch erklären und würde von dieser Überwachung tatsächlich entdeckt. Ich hätte aber von Visual Studio und seiner Ponyhoflaufzeitumgebung (Stack protection, checked iterators,...) erwartet, dass es diese Fehler automatisch entdeckt.
-
Fehler gefunden: Die Variable war eine Referenz. (auf etwas, was dann unglültig war)