Inhoudsopgave:

Welke operator wordt gebruikt om een object dynamisch van een klasse in C++ toe te wijzen?
Welke operator wordt gebruikt om een object dynamisch van een klasse in C++ toe te wijzen?

Video: Welke operator wordt gebruikt om een object dynamisch van een klasse in C++ toe te wijzen?

Video: Welke operator wordt gebruikt om een object dynamisch van een klasse in C++ toe te wijzen?
Video: DYNAMIC OBJECT IN C++ (OOPS) BY USING NEW AND DELETE OPERATOR (PART 3) | DYNAMIC MEMORY ALLOCATION 2024, April
Anonim

C++ ondersteunt dynamisch allocatie en deallocatie van voorwerpen met behulp van de nieuwe en verwijderen operators . Deze operators toewijzen geheugen voor voorwerpen van een pool genaamd de gratis winkel. De nieuwe operator roept de speciale functie op operator nieuw, en het verwijderen operator roept de speciale functie op operator verwijderen.

Hoe wijs je op deze manier dynamisch een array van objecten in C++ toe?

C++ Opmerkingen: Dynamische toewijzing van arrays

  1. De problemen met arrays van vaste grootte. Het declareren van een array met een vaste grootte zoals.
  2. Declareer array als een pointer, wijs toe met new. Als u een variabele wilt maken die naar een dynamisch toegewezen array verwijst, declareert u deze als een verwijzing naar het elementtype.
  3. Wijs een array toe met code>new.
  4. Geheugen vrijmaken met wissen.
  5. Voorbeelden.

Bovendien, hoe wijst u geheugen dynamisch toe en maakt u de toewijzing ongedaan in C++? C gebruikt de malloc() en calloc() functie om geheugen dynamisch toewijzen tijdens runtime en gebruikt de functie free() om te bevrijden dynamisch toegewezen geheugen . C++ ondersteunt deze functies en heeft ook twee operators new en delete die de taak uitvoeren van: toewijzen en het bevrijden van de geheugen op een betere en gemakkelijkere manier.

Op dezelfde manier kan men zich afvragen, hoe maak je een C++-klasse waarvan de objecten alleen dynamisch kunnen worden toegewezen?

  1. Kan niet gedaan worden. Het enige dat u kunt doen, is de constructor privé maken en een statische fabriek hebben die een nieuwe instantie van de klasse construeert. –
  2. Het maken van zo'n klasse is zeker een probleem.
  3. Dat is een heel vreemde eis.

Hoe beperk ik de dynamische toewijzing van een object in C++?

Stapelgebaseerd voorwerpen worden impliciet beheerd door C++ compiler. Ze worden vernietigd wanneer ze buiten bereik gaan en dynamisch toegewezen objecten moet handmatig worden vrijgegeven, anders gebruik je de delete-operator geheugen lekkage optreedt. C++ ondersteunt geen automatische garbagecollection-aanpak die wordt gebruikt door talen zoals Java en C#.