תשובה
כשאתה מקצה זיכרון על ה HEAP אתה לוקח לעצמך את האחריות לקרוא ל DELETE. כי למשל אתה יכול להחליט שאתה רוצה להרוס את האובייקט הזה רק במועד מאוחר יותר, והעובדה שנזרקה exception לא אומרת שאתה רוצה שהוא ייהרס בכלל. ככלל, הקומפיילר לעולם לא דואג לקרוא בעצמו ל delete לאובייקט שאתה מקצה על ה heap ולעומת זאת הוא כמעט תמיד ידאג לקרוא ל destructor של אובייקטים שהוקצו על ה stack (חוץ במקרי יציאה קיצונית מהתוכנית...).