Δείκτες σε γλώσσες προγραμματισμού όπως η C + + χρησιμεύουν ως στοιχεία αναφοράς για να εκχωρηθεί δυναμικά μνήμη στη μνήμη του συστήματος κατά τη διάρκεια της εκτέλεσης του προγράμματος . Ωστόσο , αυτή η μνήμη μπορεί να ξεχάσει κατά τη διάρκεια εκδηλώσεων στο πρόγραμμα , προκαλώντας « διαρροή μνήμης » , όπου διατίθενται μνήμη προσπερνά γρήγορα τη μνήμη του συστήματος . Εξαιτίας αυτού , θα πρέπει να διαχειρίζονται τους δείκτες σας καλά , και πάντα να τους διαγράψετε . Η " auto_ptr " τύπος δεδομένων βοηθά να φροντίσει αυτό για σας με τη διαγραφή της μνήμης που έχει εκχωρηθεί όταν το αντικείμενο auto_ptr διαγράφεται . Μπορείτε να εφαρμόσετε εύκολα τη δική σύνταξη auto_ptr σας για να χειριστεί δείκτες , όπως βλέπετε την τακτοποίηση . Τα πράγματα που θα χρειαστείτε
C + + Compiler
Η Εμφάνιση Περισσότερες οδηγίες
Η 1
Δημιουργία κατηγορίας " auto_ptr " . Ονομάστε το " SmartPointer " :
πρότυπο τάξη SmartPointer {
} 2
Συμπεριλάβετε έναν τύπο δεδομένων pointer στην κατηγορία :
πρότυπο SmartPointer {
private: T * inner_pointer ? }
εικόνων 3
Δημιουργήστε ένα κατασκευαστή για την κατηγορία Smart δείκτη , η οποία εκδοχείς αναφορά στο δείκτη :
πρότυπο τάξη SmartPointer {
δημόσια : SmartPointer ( αναφορά T ) ?
private: T * inner_pointer ? } ?
πρότυπο SmartPointer :: Smartpoint ( αναφοράς Τ ) { inner_pointer = αναφοράς ? }
Η 4 Δημιουργία διάσπασης για την τάξη , η οποία θα διαγράψει τα περιεχόμενα του δείκτη από τη μνήμη , σαν τον τύπο " auto_ptr " :
πρότυπο τάξη SmartPointer {
κοινό: SmartPointer ( αναφοράς Τ ) ? ~ SmartPointer ( ) ?
private: T * inner_pointer ? } ?
πρότυπο SmartPointer :: Smartpoint ( αναφοράς Τ ) { inner_pointer = αναφοράς ? }
πρότυπο SmartPointer :: ~ SmartPointer ( ) { διαγραφή inner_pointer ? }
Η
εικόνων