Что произойдет, если элемент std :: vector 'совершит самоубийство' (используя delete this;)?
Предположим, есть векторItem
s
vector<Item*> items; //{item1, item2, item3}
Затем в другой части кода,
items[1]->suicide();
гдеsuicide
функция:
void Item::suicide()
{
delete this;
}
Что такоеitems
размер вектора и как он сейчас устроен? этоХорошо сделать это?
редактировать (могу ли я задать дополнительный вопрос?): Если желаемое расположение выходного{item1, item3}
Размер2
и без висящего указателя, как сделать это самоуничтожением (изitem2
сам)?
Редактировать 2 : Спасибо за ответы на все вопросы! Потрясающие. Поэтому я наконец решил и нашел способ сделать это снаружи объекта, потому что это была плохая практика и излишне сложная