创建指针但如何在类中编写?

时间:2013-01-13 09:20:45

标签: visual-c++

我已经初始化了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,它无法读取任何大小,前后。

1 个答案:

答案 0 :(得分:0)

声明: Queue *q1, q2;

创建一个指针变量(Queue*)和一个类型为Queue的普通变量。仅对于q2,它是正常类型Queue,将调用构造函数。你没有看到构造函数被调用(在调试模式下),只是因为它被称为BEFORE main,(或WinMain) - 因为它是全局变量。全局变量在main例程之前初始化。

您需要使用构造函数本身设置断点 - Queue::Queue()

希望这有帮助。