I am getting a Debug Error Abort() and it states the is an unhanded exception and bad:;alloc at a specific memory location. I do not know how to move forward. This is the queue class the only place memory is allocated in the program.
<code>class Queue {
private:
Node* frontNode;
Node* rearNode;
public:
Queue() : frontNode(nullptr), rearNode(nullptr) {}
bool isEmpty() {
return frontNode == nullptr;
}
void enqueue(Shooter shooter) {
Node* newNode = new Node(shooter);
if (rearNode != nullptr) {
rearNode->link = newNode;
}
else {
frontNode = newNode;
}
rearNode = newNode;
newNode->link = nullptr;
}
void dequeue() {
if (isEmpty()) {
cout << "Queue is empty." << endl;
return;
}
Node* temp = frontNode;
frontNode = frontNode->link;
if (frontNode == nullptr) {
rearNode = nullptr;
}
delete temp;
}
Shooter& getFront() {
if (isEmpty()) {
cerr << "queue is empty" << endl;
}
return frontNode->info;
}
~Queue() {
while (!isEmpty()) {
dequeue();
}
}
};
</code>
<code>class Queue {
private:
Node* frontNode;
Node* rearNode;
public:
Queue() : frontNode(nullptr), rearNode(nullptr) {}
bool isEmpty() {
return frontNode == nullptr;
}
void enqueue(Shooter shooter) {
Node* newNode = new Node(shooter);
if (rearNode != nullptr) {
rearNode->link = newNode;
}
else {
frontNode = newNode;
}
rearNode = newNode;
newNode->link = nullptr;
}
void dequeue() {
if (isEmpty()) {
cout << "Queue is empty." << endl;
return;
}
Node* temp = frontNode;
frontNode = frontNode->link;
if (frontNode == nullptr) {
rearNode = nullptr;
}
delete temp;
}
Shooter& getFront() {
if (isEmpty()) {
cerr << "queue is empty" << endl;
}
return frontNode->info;
}
~Queue() {
while (!isEmpty()) {
dequeue();
}
}
};
</code>
class Queue {
private:
Node* frontNode;
Node* rearNode;
public:
Queue() : frontNode(nullptr), rearNode(nullptr) {}
bool isEmpty() {
return frontNode == nullptr;
}
void enqueue(Shooter shooter) {
Node* newNode = new Node(shooter);
if (rearNode != nullptr) {
rearNode->link = newNode;
}
else {
frontNode = newNode;
}
rearNode = newNode;
newNode->link = nullptr;
}
void dequeue() {
if (isEmpty()) {
cout << "Queue is empty." << endl;
return;
}
Node* temp = frontNode;
frontNode = frontNode->link;
if (frontNode == nullptr) {
rearNode = nullptr;
}
delete temp;
}
Shooter& getFront() {
if (isEmpty()) {
cerr << "queue is empty" << endl;
}
return frontNode->info;
}
~Queue() {
while (!isEmpty()) {
dequeue();
}
}
};