Hvordan begrenser jeg dynamisk tildeling av et objekt i C++?
Hvordan begrenser jeg dynamisk tildeling av et objekt i C++?

Video: Hvordan begrenser jeg dynamisk tildeling av et objekt i C++?

Video: Hvordan begrenser jeg dynamisk tildeling av et objekt i C++?
Video: Terrence Deacon Reveals the Hidden Connection: Consciousness & Entropy 2024, November
Anonim

Stakkbasert gjenstander er implisitt administrert av C++ kompilator. De blir ødelagt når de går utenfor rekkevidde og dynamisk tildelte objekter må frigjøres manuelt, ellers bruke delete-operatoren hukommelse lekkasje oppstår. C++ støtter ikke automatisk søppelinnsamling som brukes av språk som Java og C#.

Med dette i øyesyn, hvordan begrenser jeg dynamisk tildeling av et objekt i C++?

Stakkbasert gjenstander er implisitt administrert av C++ kompilator. De blir ødelagt når de går utenfor rekkevidde og dynamisk tildelte objekter må frigjøres manuelt, ellers bruke delete-operatoren hukommelse lekkasje oppstår. C++ støtter ikke automatisk søppelinnsamling som brukes av språk som Java og C#.

I tillegg, kan vi tildele minne for objektene dynamisk i CPP? Dynamisk minnetildeling til Gjenstander vi kan også dynamisk allokere objekter . Som vi vet at Constructor er en medlemsfunksjon i en klasse som kalles hver gang en ny gjenstand er laget av den klassen. Destructor er også en klassemedlemsfunksjon som kalles hver gang gjenstand går utenfor virkeområdet.

Folk spør også, hvordan lager du en C++-klasse hvis objekter bare kan tildeles dynamisk?

  1. Kan ikke gjøres. Det eneste du kan gjøre er å gjøre konstruktøren privat, og ha en statisk fabrikk som konstruerer en ny forekomst av klassen. –
  2. Å lage en slik klasse er absolutt et problem.
  3. Det er et veldig merkelig krav.

Hvorfor trenger vi å gjøre dynamisk initialisering av objekter?

De Dynamisk initialisering av objekter betyr å initialisere datamedlemmene i klassen mens de opprettet gjenstand . Når vi vil for å gi start- eller standardverdier til datamedlemmene mens de opprettes gjenstand - vi trenger å bruke dynamisk initialisering av objekter.