2 Stimmen

Ein Array von Warteschlangenobjekten löschen

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X