Queue クラスでメモリ リークが発生しています。valgrind を使用してメモリ リークを特定しましたが、どちらも同じ行で発生しています。その行はコードでマークされています。
template <typename T>
void Queue<T>::enqueue(const T& x)
{
if(isEmpty())
{
Queue<T>* temp = new Queue<T>();//THIS IS THE LEAKED MEMORY
m_data = x;
m_next = temp;
temp->m_next = NULL;
return;
}
Queue<T>* temp = this;
while(temp->m_next != NULL)
{
temp = temp->m_next;
}
Queue<T>* node = new Queue<T>();
temp->m_data = x;
node->m_next = temp->m_next;
temp->m_next = node;
return;
}
機能isEmpty()
は次のとおりです。
template <typename T>
bool Queue<T>::isEmpty() const
{
return (m_next==NULL);
}
これについてのアイデアは素晴らしいでしょう。