Πώς μπορώ να περιορίσω τη δυναμική εκχώρηση ενός αντικειμένου στη C++;
Πώς μπορώ να περιορίσω τη δυναμική εκχώρηση ενός αντικειμένου στη C++;

Βίντεο: Πώς μπορώ να περιορίσω τη δυναμική εκχώρηση ενός αντικειμένου στη C++;

Βίντεο: Πώς μπορώ να περιορίσω τη δυναμική εκχώρηση ενός αντικειμένου στη C++;
Βίντεο: Πως δημιουργώ μια λίστα επιλογών μέσα σε ένα κελί του Excel 2024, Νοέμβριος
Anonim

Βάσει στοίβας αντικείμενα διοικούνται σιωπηρά από C++ μεταγλωττιστής. Καταστρέφονται όταν ξεφεύγουν από το πεδίο εφαρμογής και δυναμικά εκχωρημένα αντικείμενα πρέπει να απελευθερωθεί χειροκίνητα, χρησιμοποιώντας διαφορετικά τον τελεστή διαγραφής μνήμη εμφανίζεται διαρροή. C++ δεν υποστηρίζει την προσέγγιση αυτόματης συλλογής σκουπιδιών που χρησιμοποιείται από γλώσσες όπως η Java και η C#.

Έχοντας αυτό υπόψη, πώς μπορώ να περιορίσω τη δυναμική εκχώρηση ενός αντικειμένου στη C++;

Βάσει στοίβας αντικείμενα διοικούνται σιωπηρά από C++ μεταγλωττιστής. Καταστρέφονται όταν ξεφεύγουν από το πεδίο εφαρμογής και δυναμικά εκχωρημένα αντικείμενα πρέπει να απελευθερωθεί χειροκίνητα, χρησιμοποιώντας διαφορετικά τον τελεστή διαγραφής μνήμη εμφανίζεται διαρροή. C++ δεν υποστηρίζει την προσέγγιση αυτόματης συλλογής σκουπιδιών που χρησιμοποιείται από γλώσσες όπως η Java και η C#.

Επιπλέον, μπορούμε να εκχωρήσουμε μνήμη για τα αντικείμενα δυναμικά στο CPP; Δυναμική εκχώρηση μνήμης Για Αντικείμενα Μπορούμε επίσης δυναμική κατανομή αντικειμένων . Οπως και εμείς να γνωρίζετε ότι ο Κατασκευαστής είναι μια συνάρτηση μέλους μιας κλάσης που καλείται κάθε φορά που μια νέα αντικείμενο δημιουργείται από αυτήν την κλάση. Ο καταστροφέας είναι επίσης μια συνάρτηση μέλους κλάσης που καλείται όποτε το αντικείμενο ξεφεύγει από το πεδίο εφαρμογής.

Οι άνθρωποι ρωτούν επίσης, πώς φτιάχνετε μια κλάση C++ της οποίας τα αντικείμενα μπορούν να εκχωρηθούν μόνο δυναμικά;

  1. Δεν μπορεί να γίνει. Το μόνο πράγμα που μπορείτε να κάνετε είναι να κάνετε τον κατασκευαστή ιδιωτικό και να έχετε ένα στατικό εργοστάσιο που δημιουργεί μια νέα παρουσία της κλάσης. –
  2. Η δημιουργία μιας τέτοιας τάξης είναι σίγουρα ένα πρόβλημα.
  3. Αυτή είναι μια πολύ περίεργη απαίτηση.

Γιατί πρέπει να κάνουμε δυναμική προετοιμασία αντικειμένων;

ο Δυναμική αρχικοποίηση αντικειμένων σημαίνει να αρχικοποίηση τα μέλη δεδομένων της κλάσης κατά τη δημιουργία του αντικείμενο . Πότε θέλουμε για να παρέχει αρχικές ή προεπιλεγμένες τιμές στα μέλη δεδομένων κατά τη δημιουργία του αντικείμενο - χρειαζόμαστε χρησιμοποιώ δυναμική αρχικοποίηση αντικειμένων.