INHOUDSOPGAWE:

Watter operateur word gebruik om 'n objek dinamies van 'n klas in C ++ toe te wys?
Watter operateur word gebruik om 'n objek dinamies van 'n klas in C ++ toe te wys?

Video: Watter operateur word gebruik om 'n objek dinamies van 'n klas in C ++ toe te wys?

Video: Watter operateur word gebruik om 'n objek dinamies van 'n klas in C ++ toe te wys?
Video: From C to Python by Ross Rheingans-Yoo 2024, April
Anonim

C++ ondersteun dinamies toekenning en deallokasie van voorwerpe gebruik die nuwe en verwyder operateurs . Hierdie operateurs toeken geheue vir voorwerpe van 'n swembad genaamd die gratis winkel. Die nuwe operateur roep die spesiale funksie operateur nuwe, en die delete operateur roep die spesiale funksie operateur skrap.

Op hierdie manier, hoe ken jy 'n skikking van voorwerpe in C++ dinamies toe?

C++ Notas: Dinamiese toewysing van skikkings

  1. Die probleme met vaste grootte skikkings. Verklaar 'n skikking met 'n vaste grootte soos.
  2. Verklaar skikking as 'n wyser, ken toe met nuwe. Om 'n veranderlike te skep wat na 'n dinamies toegekende skikking sal wys, verklaar dit as 'n wyser na die elementtipe.
  3. Ken 'n skikking toe met code>new.
  4. Maak geheue vry met delete.
  5. Voorbeelde.

Boonop, hoe allokeer en deallok u geheue dinamies in C++? C gebruik malloc() en calloc() funksie om geheue dinamies toewys tydens hardlooptyd en gebruik gratis() funksie om vry te maak dinamies toegeken geheue . C++ ondersteun hierdie funksies en het ook twee operateurs nuwe en verwyder wat die taak van verrig toekenning en bevry die geheue op 'n beter en makliker manier.

Net so kan 'n mens vra, hoe maak jy 'n C++-klas waarvan die voorwerpe net dinamies toegewys kan word?

  1. Kan nie gedoen word nie. Die enigste ding wat jy kan doen is om die konstruktor privaat te maak en 'n statiese fabriek te hê wat 'n nuwe instansie van die klas bou. –
  2. Die skep van so 'n klas is beslis 'n probleem.
  3. Dit is 'n baie vreemde vereiste.

Hoe beperk ek dinamiese toekenning van 'n voorwerp in C++?

Stapel gebaseer voorwerpe word implisiet bestuur deur C++ samesteller. Hulle word vernietig wanneer hulle buite omvang gaan en dinamies toegewysde voorwerpe moet met die hand vrygestel word, anders gebruik die verwyderingsoperateur geheue lekkasie plaasvind. C++ ondersteun nie outomatiese vullisversameling-benadering wat deur tale soos Java en C# gebruik word nie.