免責事項: C++ を学習している Java 開発者。
削除された動的オブジェクト内に保持されている文字列を返すとどうなりますか?
これはかなり標準的なデキュー メソッドであり、テンプレート化されたデータ (私のテスト ケースでは文字列) へのポインターを使用せずに機能させたいと考えています。
Ubuntu 13.04 の g++ で segfault が発生します。最新の 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;
};