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

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

Video: Hoe beperk ik de dynamische toewijzing van een object in C++?
Video: Object Assignment | C++ Tutorial 2024, November
Anonim

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#.

Met dit in het achterhoofd, 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#.

Kunnen we bovendien geheugen voor de objecten dynamisch toewijzen in CPP? Dynamische geheugentoewijzing voor Objecten die we kunnen ook objecten dynamisch toewijzen . Als wij weet dat Constructor een lidfunctie is van een klasse die wordt aangeroepen wanneer een nieuwe object is gemaakt van die klasse. Destructor is ook een klasselidfunctie die wordt aangeroepen wanneer de object gaat buiten bereik.

Mensen vragen ook: 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.

Waarom moeten we dynamische initialisatie van objecten doen?

De Dynamische initialisatie van objecten bedoelt ermee initialiseren de gegevensleden van de klas tijdens het maken van de object . Wanneer wij willen om initiële of standaardwaarden aan de gegevensleden te geven tijdens het maken van object - wij hebben nodig gebruiken dynamische initialisatie van objecten.