Sisukord:

Millist operaatorit kasutatakse C ++ klassi objekti dünaamiliseks jaotamiseks?
Millist operaatorit kasutatakse C ++ klassi objekti dünaamiliseks jaotamiseks?

Video: Millist operaatorit kasutatakse C ++ klassi objekti dünaamiliseks jaotamiseks?

Video: Millist operaatorit kasutatakse C ++ klassi objekti dünaamiliseks jaotamiseks?
Video: CS50 2015 - Week 5 2024, Aprill
Anonim

C++ tugi dünaamiline jaotamine ja eraldamine objektid kasutades uut ja kustutada operaatorid . Need operaatorid eraldavad mälu jaoks objektid basseinist nimega tasuta pood. Uus operaator kutsub erifunktsiooni operaator uus ja kustutamine operaator kutsub erifunktsiooni operaator kustutada.

Kuidas sel viisil objektide massiivi C++-s dünaamiliselt eraldada?

C++ Märkused: Massiivide dünaamiline jaotamine

  1. Probleemid fikseeritud suurusega massiividega. Fikseeritud suurusega massiivi deklareerimine nagu.
  2. Deklareerige massiiv kursorina, määrake uuega. Dünaamiliselt jaotatud massiivile osutava muutuja loomiseks deklareerige see elemendi tüübi osutajana.
  3. Jaotage massiiv koodiga kood> uus.
  4. Mälu vabastamine kustutamisega.
  5. Näited.

Lisaks, kuidas te C++-s mälu dünaamiliselt eraldate ja eraldate? C kasutab selleks funktsioone malloc() ja calloc(). eraldada mälu dünaamiliselt käitamise ajal ja kasutab free() funktsiooni free dünaamiliselt eraldatud mälu . C++ toetab neid funktsioone ja sellel on ka kaks uut ja kustutatud operaatorit, mis täidavad ülesande eraldamine ja vabastades mälu paremal ja lihtsal viisil.

Samamoodi võib küsida, kuidas teha C++ klassi, mille objekte saab ainult dünaamiliselt jaotada?

  1. Ei saa teha. Ainus, mida saate teha, on muuta konstruktor privaatseks ja luua staatiline tehas, mis loob klassi uue eksemplari. –
  2. Sellise klassi loomine on kindlasti probleem.
  3. See on väga veider nõue.

Kuidas piirata objekti dünaamilist jaotamist C++-s?

Virnapõhine objektid neid haldavad kaudselt C++ koostaja. Need hävitatakse, kui nad väljuvad reguleerimisalast ja dünaamiliselt jaotatud objektid tuleb käsitsi vabastada, vastasel juhul kasutage kustutamisklahvi mälu tekib leke. C++ ei toeta automaatset prügikoristusmeetodit, mida kasutavad sellised keeled nagu Java ja C#.