При вызове delete несколько раз,вызывается деструктор столько же раз,че за?
Это C++, детка, здесь могут и ногу отстрелить.
Да, это совершенно нормальное поведение для C++. В угоду переносимости и производительности, здесь никто не проверяет, что объект был ранее уничтожен.
У меня вопрос(опытные люди, ответе мне, у кого стаж более 3-5 лет на с++) это выражение "здесь могут и ногу отстрелить.". применяют те кто изучали С++ по youtube? Дело в том, что я изучал С++ по классическим учебникам и всегда следовал правилам придуманные не для того, что бы их нарушали. И я не могу понять как в С++ себе можно ногу отстрелить, если строго следовать правилам? Или это всего навсего выражение новичков/быдлокодеров которые погорели из-за невнимательности на таких вещах как работа с памятью(как пример)?  Я может не знаю, что то? Подскажите.
Есть правила, есть стандарты которые придумали умные люди что бы им придерживались а не нарушали! Item *item = new Item;
      delete item;
    delete item;
    delete item;
Вы заняли память потом её освободили,  на этом всё. Как вы освободите повторно уже пустой раздел памяти(который освободили уже)?