Wat is die belangrikste verskil tussen delete [] en delete?
Wat is die belangrikste verskil tussen delete [] en delete?

Video: Wat is die belangrikste verskil tussen delete [] en delete?

Video: Wat is die belangrikste verskil tussen delete [] en delete?
Video: Nick Lane: Origins of Life, Evolution, Alien Life 2024, Desember
Anonim

Die rede waarom daar aparte skrap en verwyder operateurs is dit skrap noem onedestructor terwyl verwyder moet die grootte van die skikking opsoek en dit baie vernietigers noem. Die gebruik van een waar die ander nodig is, kan natuurlik probleme veroorsaak.

Boonop, wat is die verskil tussen gratis () en verwyder?

Verskille tussen delete operateur en vry() funksie skrap is 'n operateur terwyl vry() is biblioteekfunksie. verwyder gratis die toegekende geheue en oproepvernietiger. Maar vry() de-allokeer geheue, maar noem nie destructor nie. skrap is vinniger as vry() want 'n operateur is altyd vinniger as 'n funksie.

Weet ook, wat doen delete in C ++? skrap () in C ++ Skrap is 'n operateur wat is gebruik om skikking en nie-skikking (wyser) voorwerpe te vernietig wat is geskep deur nuwe uitdrukking. Wat beteken Vee uit operateur verdeel geheue vanaf hoop. Wyser na beswaar is nie vernietig nie, waarde of geheueblok wat deur wyser gewys word is vernietig.

Hiervan, wat is die verskil tussen verwyder en verwyder?

Vee uit en verwyder word heel soortgelyk gedefinieer, maar die belangrikste verskil tussen hulle is dit skrap beteken uitvee (d.w.s. nie-bestaande of nie-herstelbaar gemaak), terwyl verwyder konnoteer wegneem en tersyde stelling (maar aanhou bestaan).

In watter opsig verskil destructor van delete operator?

Die eerste vernietiger , genoem die volledige voorwerp vernietiger , voer die vernietiging uit sonder om te roep skrap () op die voorwerp. Die tweede vernietiger , genoem die vernietiger verwyder , oproepe skrap () nadat die voorwerp vernietig is. As 'n voorwerp vernietig word, maar nie geskrap van die hoop af, roep operateur verwyder is verkeerd.

Aanbeveel: