免责声明:Java 开发人员学习 C++。
当您返回保存在已删除动态对象中的字符串时会发生什么?
这是一个相当标准的出队方法,我想让它在不使用模板数据指针的情况下工作,这是我的测试用例中的一个字符串。
Ubuntu 13.04 上的 g++ 给了我段错误。在最新的 OSX 上,我的数据已损坏。
是我的代码还是 C++?
// remove an object from the front of the queue.
// the test case instantiate T as string.
// front->data is assigned an static string.
template<class T>
T & SomeQueue<T>::dequeue() {
if (empty()) throw runtime_error("kaboom");
T tmp = front->data;
Node<T> *n = front;
front = front->next;
delete n;
return tmp;
};