Kleines Pointer Problem
-
Hi erstmal,
ich habe ein kleines Problem mit einem Pointer.
Dieser Pointer ist ein einer Klasse names Container und zeigt auf eine mit new erstellte (oder eben nicht erstellte) Klasse Reference (diese erbt von std::list<2terContainer*>)der Pointer wird im Constructor mit pPointer = NULL gesetzt. dann wird theoretisch ein wert mit new zugewiesen aber nicht immer.
Im Destruktor steht ein Aufruf auf die Funktion DeleteReferenz()
Die sieht so aus:if(m_pReference == NULL) return; delete m_pReference; m_pReference = NULL;(Funktion deswegen, weil der Wert auch mal während der Laufzeit gelöscht werden soll)
nun mein Problem:
Wenn ich einfach irgendwo eine Instanz von Container erstelle, und sie danach wieder lösche, geht DeleteReferenz() das erste mal gut. Kein Wert, also überspringen. Dann springt das Programm jedoch ein zweites Mal in DeleteReferenz...und ich find nicht wirklich herraus warum...wäre für Hilfe dankbar.
-

Problem hat sich erledigt.
Hatte 2 Constructoren, die sich beide nur in der Übergabe eines Wertes unterschieden und ich wollte von dem einen den anderen mit einem Standart wert aufrufen...Daher kam immer der Fehler
-
Daishy schrieb:

Problem hat sich erledigt.
Hatte 2 Constructoren, die sich beide nur in der Übergabe eines Wertes unterschieden und ich wollte von dem einen den anderen mit einem stan**** wert aufrufen...Daher kam immer der Fehler
Das geht in C++ sowieso nicht, daß sich Konstruktoren einer Klasse gegenseitig aufrufen - du könntest höchstens die gemeinsam benötigten Code-Teile in eine init()-Methode auslagern, di von allen Ctoren aufgerufen wird.
(oder du nutzt Default-Parameter)