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