Si mund të kufizoj alokimin dinamik të një objekti në C++?
Si mund të kufizoj alokimin dinamik të një objekti në C++?

Video: Si mund të kufizoj alokimin dinamik të një objekti në C++?

Video: Si mund të kufizoj alokimin dinamik të një objekti në C++?
Video: SI TË konfiguroni L4D2 2024, Dhjetor
Anonim

Bazuar në rafte objektet menaxhohen në mënyrë implicite nga C++ përpilues. Ata shkatërrohen kur dalin jashtë fushëveprimit dhe objekte të alokuara në mënyrë dinamike duhet të lirohet manualisht, duke përdorur operatorin e fshirjes përndryshe memorie ndodh rrjedhje. C++ nuk e mbështet qasjen automatike të grumbullimit të mbeturinave të përdorura nga gjuhë të tilla si Java dhe C#.

Duke pasur parasysh këtë, si mund ta kufizoj alokimin dinamik të një objekti në C++?

Bazuar në rafte objektet menaxhohen në mënyrë implicite nga C++ përpilues. Ata shkatërrohen kur dalin jashtë fushëveprimit dhe objekte të alokuara në mënyrë dinamike duhet të lirohet manualisht, duke përdorur operatorin e fshirjes përndryshe memorie ndodh rrjedhje. C++ nuk e mbështet qasjen automatike të grumbullimit të mbeturinave të përdorura nga gjuhë të tilla si Java dhe C#.

Përveç kësaj, a mund të ndajmë memorie për objektet në mënyrë dinamike në CPP? Shpërndarja dinamike e memories për Objektet Ne mundemi gjithashtu alokimi dinamik i objekteve . Si ne Dije se Konstruktori është një funksion anëtar i një klase që thirret sa herë që një e re Objekt është krijuar nga ajo klasë. Destructor është gjithashtu një funksion anëtar i klasës i cili thirret sa herë që Objekt del jashtë fushëveprimit.

Njerëzit pyesin gjithashtu, si mund të krijoni një klasë C++, objektet e së cilës mund të shpërndahen vetëm në mënyrë dinamike?

  1. Nuk mund të bëhet. E vetmja gjë që mund të bëni është ta bëni konstruktorin privat dhe të keni një fabrikë statike që ndërton një shembull të ri të klasës. -
  2. Krijimi i një klase të tillë është sigurisht një problem.
  3. Kjo është një kërkesë shumë e çuditshme.

Pse duhet të bëjmë inicializimin dinamik të objekteve?

Të Inicializimi dinamik i objekteve do të thotë të inicializoj anëtarët e të dhënave të klasës gjatë krijimit të Objekt . Kur ne duam për të ofruar vlera fillestare ose të paracaktuara për anëtarët e të dhënave gjatë krijimit të Objekt - ne kemi nevojë per te perdorur inicializimi dinamik i objekteve.