Ni tofauti gani kuu kati ya kufuta [] na kufuta?
Ni tofauti gani kuu kati ya kufuta [] na kufuta?

Video: Ni tofauti gani kuu kati ya kufuta [] na kufuta?

Video: Ni tofauti gani kuu kati ya kufuta [] na kufuta?
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Aprili
Anonim

Sababu kwa nini kuna tofauti kufuta na futa waendeshaji ni kwamba kufuta huita mjenzi mmoja wakati futa inahitaji kuangalia juu ya ukubwa wa safu na kuwaita waharibifu wengi. Kwa kawaida, kutumia moja ambapo nyingine inahitajika inaweza kusababisha matatizo.

Mbali na hilo, ni tofauti gani kati ya bure () na kufuta?

Tofauti kati ya kufuta mwendeshaji na bure () kazi kufuta ni operator kumbe bure () ni kazi ya maktaba. futa bure kumbukumbu iliyotengwa na kiharibu simu. Lakini bure () de-allocate kumbukumbu lakini haitoi wito wadestructor. kufuta ni kasi kuliko bure () kwa sababu kipeperushi huwa haraka kuliko kitendakazi.

Pia Jua, kufuta hufanya nini katika C ++? kufuta () ndani C ++ Futa ni mwendeshaji huyo ni hutumika kuharibu vitu vya safu na visivyo vya safu(pointer) ambavyo ni iliyoundwa na usemi mpya. Inamaanisha Futa Opereta hugawa kumbukumbu kutoka kwa lundo. Kielekezi cha kupinga ni haijaharibiwa, thamani au kizuizi cha kumbukumbu kilichoelekezwa na pointer ni kuharibiwa.

Hivi, kuna tofauti gani kati ya kuondoa na kufuta?

Futa na ondoa hufafanuliwa sawa kabisa, lakini kuu tofauti kati ya wao ndio hao kufuta maana yake futa (yaani imetolewa kuwa haipo au haiwezi kurejeshwa), wakati ondoa viunganishi huondoa na kuweka kando (lakini vinaendelea kuwepo).

Ni kwa njia gani mharibifu ni tofauti na mendeshaji wa kufuta?

Ya kwanza mharibifu , kinachoitwa kitu kamili mharibifu , hufanya uharibifu bila wito kufuta () kwenye kitu. Ya pili mharibifu , inaitwa kufuta kiharibifu , wito kufuta () baada ya kuharibu kitu. Ikiwa kitu kimeharibiwa lakini sio imefutwa kutoka kwenye lundo, wito kufuta operator si sahihi.

Ilipendekeza: