c++模板返回值

C++ template return value

本文关键字:返回值 c++      更新时间:2023-10-16

我需要使用模板实现为任何数据类型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(),我可能需要临时保存数据。谢谢大家!!

看起来你实际上想要:

return returnValue;

这里有错误:

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

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