Jaký je hlavní rozdíl mezi delete [] a delete?
Jaký je hlavní rozdíl mezi delete [] a delete?

Video: Jaký je hlavní rozdíl mezi delete [] a delete?

Video: Jaký je hlavní rozdíl mezi delete [] a delete?
Video: ЛЮБОВНИКИ ПРИНЦЕССЫ ДИАНЫ# Принцесса Уэльская# Леди Ди#Lady Diana# 2024, Smět
Anonim

Důvod, proč existují oddělené vymazat a vymazat operátory to je vymazat volá onedestructor, zatímco vymazat potřebuje vyhledat velikost pole a zavolat tolik destruktorů. Přirozeně, použití jednoho tam, kde je vyžadováno druhé, může způsobit problémy.

Kromě toho, jaký je rozdíl mezi free () a delete?

Rozdíly mezi smazáním operátor a volný, uvolnit() funkce vymazat je operátor, zatímco volný, uvolnit() je knihovní funkce. smazat zdarma přidělenou paměť a destruktor volání. Ale volný, uvolnit() zrušit přidělení paměti, ale nevolá destruktor. vymazat je rychlejší než volný, uvolnit() protože aoperátor je vždy rychlejší než funkce.

Také víte, co dělá delete v C ++? vymazat () v C ++ Smazat je operátor, který je používá k destroy pole a non-array (ukazatel) objektů, které jsou vytvořené novým výrazem. Což znamená Vymazat operátor uvolní paměť z haldy. Ukazatel na objekt je notdestroyed, hodnota nebo paměťový blok ukazuje ukazatel je zničeno.

Jaký je rozdíl mezi odstraněním a odstraněním?

Vymazat a odstranit jsou definovány docela podobně, ale hlavní rozdíl mezi oni jsou to vymazat prostředek vymazat (tj. učiněna neexistující nebo neobnovitelná), zatímco odstranit konoty odnést a vysadit (ale udržet v existenci).

V čem se destruktor liší od operátora delete?

První destruktor , nazývaný úplný objekt destruktor , provede zničení bez volání vymazat () na objektu. Druhý destruktor , nazvaný odstranění destruktoru , hovory vymazat () po zničení objektu. Pokud je objekt zničen, ale ne smazáno z hromady, volání operátor smazat je špatně.

Doporučuje: