Ich arbeite an einem Objekt, das ein Array von queues
mit einer Array-Länge, die erst beim Aufruf des Konstruktors festgelegt wird. Im Grunde sieht es in etwa wie folgt aus
#include <queue>
class myClass{
public:
//public functions
private:
//private functions and variables
queue<int>* myQueue;
};
wird er wie folgt initialisiert:
myClass::myClass(int numOfQueues){
myQueue = new queue<int>[numOfQueues];
}
Dies alles funktioniert wunderbar, es scheint. es funktioniert genau wie ich gehofft hatte, es würde, aber jetzt jedes Mal, wenn ich das Programm beenden ich einen Segmentierungsfehler erhalten. Die Klasse hat einige andere Arrays in es, die auf die gleiche Weise initialisiert werden, aber diese sind von Typen bool
y int
anstelle der Warteschlange. Mein Destruktor sieht wie folgt aus:
myClass::~myClass(){
delete boolArray;
delete intArray;
delete myQueue;
}
Jetzt nehme ich an, dass dieser Destruktor für die boolArray
y intArray
Zeigern, denn ich habe erst dann einen Segfault bekommen, als ich die myQueue
. Hat jemand eine Idee, wie der Destruktor richtig zu schreiben ist? Ist es möglich, dass dies alles ist, was ich tun muss, und der Destruktor wird einfach nicht zum richtigen Zeitpunkt aufgerufen?