【发布时间】:2013-03-29 16:45:41
【问题描述】:
我需要使用模板实现一个为任何数据类型 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 getFirst;到底是怎么编译的? -
对不起,这是一个错字,现在已经修复了,但是为什么它不起作用!!!
-
我们需要查看您的其余实现...它不起作用的最可能原因是
_first->_data是垃圾。
标签: c++ function templates types return