Приведет ли данный код к утечке памяти?
У меня есть следующий метод:
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 ⁢ // Aborted (core dumped)
При попытке удалить созданный методом Vertices() объект операционная система убивает процесс. Без delete все работает хорошо, но мне кажется, что в таком случае возникает утечка памяти. Нужно ли удалять объект it и, если да, как это правильно сделать?