Hogyan korlátozhatom egy objektum dinamikus kiosztását C++ nyelven?
Hogyan korlátozhatom egy objektum dinamikus kiosztását C++ nyelven?

Videó: Hogyan korlátozhatom egy objektum dinamikus kiosztását C++ nyelven?

Videó: Hogyan korlátozhatom egy objektum dinamikus kiosztását C++ nyelven?
Videó: Basics of Dynamic Memory Allocation 2024, December
Anonim

Stack alapú tárgyakat által implicit módon kezelik C++ fordítóprogram. Megsemmisülnek, amikor kikerülnek a hatókörből és dinamikusan allokált objektumok manuálisan kell feloldani, ellenkező esetben a delete operátor használatával memória szivárgás lép fel. C++ nem támogatja az olyan nyelvek által használt automatikus szemétgyűjtési megközelítést, mint a Java és a C#.

Ezt szem előtt tartva hogyan korlátozhatom egy objektum dinamikus kiosztását C++ nyelven?

Stack alapú tárgyakat által implicit módon kezelik C++ fordítóprogram. Megsemmisülnek, amikor kikerülnek a hatókörből és dinamikusan allokált objektumok manuálisan kell feloldani, ellenkező esetben a delete operátor használatával memória szivárgás lép fel. C++ nem támogatja az olyan nyelvek által használt automatikus szemétgyűjtési megközelítést, mint a Java és a C#.

Ezenkívül lefoglalhatunk-e memóriát az objektumok számára dinamikusan a CPP-ben? Dinamikus memóriafoglalás számára Tárgyak Megtehetjük is dinamikusan kiosztja az objektumokat . Mint mi tudd, hogy a Constructor egy osztály tagfüggvénye, amelyet minden alkalommal meghívnak, amikor új tárgy abból az osztályból jön létre. A Destructor egy osztálytag függvény is, amelyet akkor hívunk meg, amikor a tárgy kikerül a hatókörből.

Az emberek azt is kérdezik, hogyan lehet olyan C++ osztályt készíteni, amelynek objektumai csak dinamikusan allokálhatók?

  1. Nem lehet megtenni. Az egyetlen dolog, amit tehet, az az, hogy a konstruktort priváttá teszi, és létrehoz egy statikus gyárat, amely létrehozza az osztály új példányát. –
  2. Egy ilyen osztály létrehozása természetesen probléma.
  3. Ez egy nagyon furcsa követelmény.

Miért van szükség az objektumok dinamikus inicializálására?

Az Az objektumok dinamikus inicializálása azt jelenti inicializálni az osztály adattagjai létrehozása közben a tárgy . Amikor mi akarunk kezdeti vagy alapértelmezett értékek megadása az adattagoknak a létrehozása során tárgy - szükségünk van használni objektumok dinamikus inicializálása.