C ++模板返回值

时间:2013-04-07 16:45:20

标签: c++ function templates types return

我需要实现一个使用模板为任何数据类型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(),我可能需要暂时保存数据。非常感谢你们!

2 个答案:

答案 0 :(得分:3)

看起来你真的想要:

return returnValue;

答案 1 :(得分:1)

这里有错误:

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

应该是

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