问题
不了解发生了什么逻辑错误。
试图在main.cpp测试中调用函数clear_queue()
我的GUESS发生在最后一个要出列的对象的while循环中,但我不确定到底发生了什么,我认为它因为要解决一个太多而
我的Queue
类变量
- 开始(指向节点类对象的指针)
- 结束(指向节点类对象的指针)
- count(int)
Node
班级
-constructor有一个param(int数据)
-next(指针)
-value(int)
的 enqueue()
enque实施
制作新节点对象,更新队列指针,存储数据,增量计数
用一个参数"数据" beginning->value
的 dequeue & clear_queue()
//需要返回出列值
queue.cpp
int Queue::dequeue() {
if (! isEmpty()) {
Node *temp = beginning;
int tempValue = temp->value;
temp->value = tempValue;
beginning = beginning->next;
delete temp;
count --;
return tempValue;
}
}
queue_test.cpp
void QueueTest::clear_queue() {
test_header( "clearing the queue (isEmpty and dequeue)" );
while( ! queue->isEmpty() ) {
queue->dequeue();
}
//测试消息输出消息,应输出"传递"如果子程序成功完成。
//测试标题只输出消息
//得到段错:11
输出
--- Testing clearing the queue (isEmpty and dequeue) ---
RUN FINISHED; Segmentation fault: 11; real time: 290ms; user: 0ms; system: 0ms