-1

我需要使用模板实现一个为任何数据类型 T 服务的队列,我需要实现的一个函数称为 T getFirst() ,它返回第一个节点的值,我原来的方法是:

T getFirst(){
    T returnValue = _first->_data;
    return returnValue;
}

我发现这不起作用,如果我打电话

Queue<int> q;
q.add(2);
cout << Q.getFirst() << endl;

输出是一些垃圾。令人惊讶的是,如果我将代码简化为:

T getFirst(){
    return _first->_data;
}

它有效!!,为什么???有人可以解释一下。我需要第一种方法的原因是稍后我需要实现 removeFirst(),我可能需要临时保存数据。非常感谢各位!!!

4

2 回答 2

3

看起来你真的想要:

return returnValue;
于 2013-04-07T16:46:34.297 回答
1

在这里你有错误:

T getFirst(){
   T returnValue = _first->_data;
   return getFirst;  //^^^You return function name? 
}

应该

T getFirst(){
   T returnValue = _first->_data;
   return returnValue ;
}  
于 2013-04-07T16:46:37.323 回答