Я работаю над объектом, который содержит массив queues
с длиной массива, которая не определена до вызова конструктора. В основном это выглядит примерно так:
#include <queue>
class myClass{
public:
//public functions
private:
//private functions and variables
queue<int>* myQueue;
};
инициализируется так:
myClass::myClass(int numOfQueues){
myQueue = new queue<int>[numOfQueues];
}
Кажется, все это прекрасно работает. он работает точно так, как я надеялся, но теперь каждый раз, когда я выхожу из программы, я получаю ошибку сегментации. В классе есть несколько других массивов, которые инициализируются таким же образом, но они имеют типы bool
и int
вместо очереди. Мой деструктор выглядит так:
myClass::~myClass(){
delete boolArray;
delete intArray;
delete myQueue;
}
Теперь я предполагаю, что этот деструктор работает для указателей boolArray
и intArray
, потому что я не начинал получать ошибку, пока не добавил myQueue
. Кто-нибудь знает, как правильно написать деструктор? Возможно ли, что это все, что я должен сделать, и деструктор просто не вызывается в нужное время?