Ako obmedzím dynamickú alokáciu objektu v C++?
Ako obmedzím dynamickú alokáciu objektu v C++?

Video: Ako obmedzím dynamickú alokáciu objektu v C++?

Video: Ako obmedzím dynamickú alokáciu objektu v C++?
Video: Моя история начала работы парикмахером. Уроки парикмахеров для новичков 2024, December
Anonim

Na základe zásobníka predmety sú implicitne riadené C++ kompilátor. Sú zničené, keď sa dostanú mimo rozsah a dynamicky prideľované objekty musí byť uvoľnené manuálne, inak pomocou operátora delete Pamäť dochádza k úniku. C++ nepodporuje prístup automatického zhromažďovania odpadu, ktorý používajú jazyky ako Java a C#.

Vzhľadom na to, ako obmedzím dynamickú alokáciu objektu v C++?

Na základe zásobníka predmety sú implicitne riadené C++ kompilátor. Sú zničené, keď sa dostanú mimo rozsah a dynamicky prideľované objekty musí byť uvoľnené manuálne, inak pomocou operátora delete Pamäť dochádza k úniku. C++ nepodporuje prístup automatického zhromažďovania odpadu, ktorý používajú jazyky ako Java a C#.

Okrem toho môžeme dynamicky prideľovať pamäť pre objekty v CPP? Dynamická alokácia pamäte pre Objekty Môžeme tiež dynamicky prideľovať objekty . Ako my vedieť, že konštruktor je členská funkcia triedy, ktorá sa volá vždy, keď je nová objekt je vytvorená z tejto triedy. Deštruktor je tiež členská funkcia triedy, ktorá sa volá vždy, keď je objekt ide mimo rozsah.

Ľudia sa tiež pýtajú, ako vytvoríte triedu C++, ktorej objekty možno prideľovať iba dynamicky?

  1. Nedá sa to urobiť. Jediná vec, ktorú môžete urobiť, je nastaviť konštruktor ako súkromný a mať statickú továreň, ktorá vytvorí novú inštanciu triedy. –
  2. Vytvorenie takejto triedy je určite problém.
  3. To je veľmi zvláštna požiadavka.

Prečo potrebujeme robiť dynamickú inicializáciu objektov?

The Dynamická inicializácia objektov znamená inicializovať údajových členov triedy pri vytváraní objekt . Kedy chceme poskytnúť počiatočné alebo predvolené hodnoty dátovým členom pri vytváraní objekt - potrebujeme použit dynamická inicializácia objektov.