我已经初始化了Queue * q1,* q2;但它无法在我的队列类中创建队列
主要
Queue *q1, *q2; // Global variable
队列类
// codes......
Queue::Queue() { // default constructor
size = 0;
front = 0;
rear = Q_MAX_SIZE -1;
}
Queue::~Queue() {
while(!isEmpty()) {
dequeue();
}
}
void Queue::enqueue(Car c) {
if (!isFull()) {
rear = (rear + 1) % Q_MAX_SIZE; // circular array
carQueue[rear] = c;
size++;
} else {
cout << "Queue is currently full.\n";
}
}
// codes.....
我似乎无法在调试模式下使用默认构造函数初始化Queue,它无法读取任何大小,前后。
答案 0 :(得分:0)
声明:
Queue *q1, q2;
创建一个指针变量(Queue*
)和一个类型为Queue
的普通变量。仅对于q2
,它是正常类型Queue
,将调用构造函数。你没有看到构造函数被调用(在调试模式下),只是因为它被称为BEFORE main
,(或WinMain
) - 因为它是全局变量。全局变量在main
例程之前初始化。
您需要使用构造函数本身设置断点 - Queue::Queue()
。
希望这有帮助。