delete – operátor (C++)
Zruší přidělení bloku paměti.
[::] delete cast-expression
[::] delete [ ] cast-expression
Poznámky
Je nutné, aby argument cast-expression byl ukazatel na blok paměti dříve přidělené pro objekt vytvořený pomocí operátoru new.Operátor delete má výsledek typu void a proto nevrátí žádnou hodnotu.Příklad:
CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;
Použití delete na ukazatel objektu, který nebyl přidělen pomocí new, poskytuje neočekávané výsledky.Je však možné použít delete na ukazatel s hodnotou 0.Toto zajištění znamená, že pokud new vrátí při selhání hodnotu 0, je odstranění výsledku nezdařené operace new neškodné.Další informace naleznete v tématu Operátory new a delete.
Operátory new a delete lze také použít pro vestavěné typy, včetně polí.Pokud pointer odkazuje na pole, je třeba před pointer umístit prázdné závorky:
int* set = new int[100];
//use set[]
delete [] set;
Použití operátoru delete na objekt, zruší přidělení paměti.Program, který přistoupí přes ukazatel po odstranění objektu, může mít nepředvídatelné výsledky nebo se zhroutit.
Při použití delete k zrušení přidělení paměti pro objekt třídy jazyka C++, je před zrušením přidělení paměti objektu zavolán destruktor objektu (pokud má objekt destruktor).
Je-li operand operátoru delete modifikovatelná l-hodnota, je jeho hodnota po odstranění objektu nedefinovaná.
Příklad
Příklady použití delete, viz Operátor new.