Kako mogu ograničiti dinamičku dodjelu objekta u C++?
Kako mogu ograničiti dinamičku dodjelu objekta u C++?

Video: Kako mogu ograničiti dinamičku dodjelu objekta u C++?

Video: Kako mogu ograničiti dinamičku dodjelu objekta u C++?
Video: Basics of Dynamic Memory Allocation 2024, Svibanj
Anonim

Temeljen na stogu predmeta njima implicitno upravljaju C++ prevodilac. Uništavaju se kada izađu iz okvira i dinamički dodijeljeni objekti mora se ručno otpustiti, u suprotnom koristite operator delete memorija dolazi do curenja. C++ ne podržava pristup automatskog prikupljanja smeća koji koriste jezici kao što su Java i C#.

Imajući to na umu, kako mogu ograničiti dinamičku dodjelu objekta u C++?

Temeljen na stogu predmeta njima implicitno upravljaju C++ prevodilac. Uništavaju se kada izađu iz okvira i dinamički dodijeljeni objekti mora se ručno otpustiti, u suprotnom koristite operator delete memorija dolazi do curenja. C++ ne podržava pristup automatskog prikupljanja smeća koji koriste jezici kao što su Java i C#.

Dodatno, možemo li u CPP-u dinamički dodijeliti memoriju za objekte? Dinamička dodjela memorije za Objekti koje možemo također dinamički alocirati objekte . Kao mi znati da je Konstruktor funkcija člana klase koja se poziva kad god je nova objekt je stvoren od te klase. Destruktor je također funkcija člana klase koja se poziva kad god je objekt izlazi iz okvira.

Ljudi također pitaju, kako napraviti C++ klasu čiji se objekti mogu samo dinamički dodijeliti?

  1. Ne može se učiniti. Jedino što možete učiniti je učiniti konstruktor privatnim i imati statičku tvornicu koja konstruira novu instancu klase. –
  2. Stvaranje takve klase svakako predstavlja problem.
  3. To je vrlo čudan zahtjev.

Zašto trebamo raditi dinamičku inicijalizaciju objekata?

The Dinamička inicijalizacija objekata znači da inicijalizirati podaci članovi klase tijekom stvaranja objekt . Kada mi želimo za pružanje početnih ili zadanih vrijednosti članovima podataka tijekom kreiranja objekt - trebamo koristiti dinamička inicijalizacija objekata.