
2025 Autor: Lynn Donovan | [email protected]. Viimati modifitseeritud: 2025-01-22 17:23
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
- Probleemid fikseeritud suurusega massiividega. Fikseeritud suurusega massiivi deklareerimine nagu.
- Deklareerige massiiv kursorina, määrake uuega. Dünaamiliselt jaotatud massiivile osutava muutuja loomiseks deklareerige see elemendi tüübi osutajana.
- Jaotage massiiv koodiga kood> uus.
- Mälu vabastamine kustutamisega.
- 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?
- Ei saa teha. Ainus, mida saate teha, on muuta konstruktor privaatseks ja luua staatiline tehas, mis loob klassi uue eksemplari. –
- Sellise klassi loomine on kindlasti probleem.
- 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#.