Приведет ли данный код к утечке памяти?

У меня есть следующий метод:

AllVerticesIter& Vertices() { return *(new AllVerticesIter(*this)); }

Где-то в другом месте программы:

GraphAsMatrix::AllVerticesIter it = directed.Vertices();
for(;!it.IsDone(); ++it)
{
    std::cout << "\t[number: " << (*it).Number() << " | weight: " << (*it).weight << "]" << std::endl;
}

delete &it; // Aborted (core dumped)

При попытке удалить созданный методом Vertices() объект операционная система убивает процесс. Без delete все работает хорошо, но мне кажется, что в таком случае возникает утечка памяти. Нужно ли удалять объект it и, если да, как это правильно сделать?


Ответы (0 шт):