Video: Si mund të kufizoj alokimin dinamik të një objekti në C++?
2024 Autor: Lynn Donovan | [email protected]. E modifikuara e fundit: 2023-12-15 23:53
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?
- 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. -
- Krijimi i një klase të tillë është sigurisht një problem.
- 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.