Πώς να τραβήξετε ένα χαρακτηριστικό

Πίνακας περιεχομένων:

Πώς να τραβήξετε ένα χαρακτηριστικό
Πώς να τραβήξετε ένα χαρακτηριστικό

Βίντεο: Πώς να τραβήξετε ένα χαρακτηριστικό

Βίντεο: Πώς να τραβήξετε ένα χαρακτηριστικό
Βίντεο: Η Θολή Διαθεσιμότητα (Και Πώς Μπορεί Να Σε Τρελάνει!!!) | Men of Style 2024, Δεκέμβριος
Anonim

Όταν εργάζεστε με αντικείμενα και άλλες εμφανίσεις μιας κλάσης, η πρόσβαση σε χαρακτηριστικά είναι μία από τις συνήθεις λειτουργίες για έναν προγραμματιστή. Η απόκτηση πρόσβασης σε ορισμένα δεδομένα που είναι αποθηκευμένα σε αντικείμενα μπορεί να είναι δύσκολη, δεδομένων των μεθόδων ασφαλείας που χρησιμοποιούνται για αυτά. Έτσι, τα χαρακτηριστικά που κλείνουν οι ιδιωτικοί και προστατευμένοι προσδιοριστές μπορούν να αποσυρθούν από μια παρουσία τάξης μόνο σε μια μέθοδο που ανήκει σε ένα αντικείμενο της ίδιας ή σε μια θυγατρική (για προστατευμένη) τάξη.

Πώς να τραβήξετε ένα χαρακτηριστικό
Πώς να τραβήξετε ένα χαρακτηριστικό

Οδηγίες

Βήμα 1

Δημιουργήστε ένα αντικείμενο ή έναν δείκτη σε μια παρουσία της κλάσης του οποίου το χαρακτηριστικό χρειάζεστε στο πρόγραμμά σας. Η τυπική κατασκευή για μια τέτοια λειτουργία είναι CMyClass myObj1. Μερικές φορές, για να αρχικοποιήσετε ένα αντικείμενο, πρέπει να μεταβιβάσετε ορισμένες παραμέτρους στον κατασκευαστή κλάσης. Σε αυτήν την περίπτωση, η εγγραφή της δημιουργίας αντικειμένων μπορεί να έχει την εξής μορφή: CMyClass myObj1 (param1, param2, param3), όπου το CMyClass είναι το όνομα κλάσης, το myObj1 είναι το όνομα του αντικειμένου που δημιουργείται και αναφέρονται όλες οι παράμετροι που ζητούνται από τον κατασκευαστή σε παρένθεση. Δημιουργείται δείκτης σε μια παρουσία κλάσης ως εξής: CMyClass * pObj1 = νέο CMyClass (param1, param2, param3).

Βήμα 2

Ο απλούστερος τρόπος για να καλέσετε ένα χαρακτηριστικό είναι να το αναφέρετε απευθείας οπουδήποτε στο πρόγραμμα. Ωστόσο, αυτό είναι δυνατό μόνο για ανοιχτά δεδομένα που περιγράφονται σε μια τάξη με τον δημόσιο τροποποιητή. Η άμεση πρόσβαση μέσω ενός αντικειμένου μοιάζει με αυτό: myObj1.attr1, όπου το attr1 είναι ένα χαρακτηριστικό αυτής της κλάσης. Για έναν δείκτη, η κλήση θα ήταν: pObj1–> attr1.

Βήμα 3

Εάν το χαρακτηριστικό που πρέπει να αναφέρετε έχει την κρυφή κατάσταση και περιγράφεται σε μια τάξη με τον ιδιωτικό τροποποιητή, τότε η πρόσβαση σε αυτό είναι δυνατή μόνο από μια μέθοδο που ανήκει στην ίδια κλάση. Η μέθοδος ή η λειτουργία της τάξης πρέπει να έχει το δημόσιο καθεστώς δημόσιο. Προσθέστε μια νέα μέθοδο στην τάξη, όπου γράφετε την επεξεργασία του απαιτούμενου χαρακτηριστικού. Σε αυτήν την περίπτωση, οι παράμετροι μπορούν να μεταφερθούν στη συνάρτηση, ανάλογα με την αξία της εκτέλεσης συγκεκριμένων ενεργειών. Η ίδια η συνάρτηση μπορεί επίσης να επιστρέψει δεδομένα, όπως το περιεχόμενο ενός χαρακτηριστικού. Κωδικός προγράμματος C ++ που εφαρμόζει και τις δύο λειτουργίες για εργασία με ένα ιδιωτικό χαρακτηριστικό: class CMyClass {protected: int attr1; // δημόσιο χαρακτηριστικό: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }}

Βήμα 4

Έτσι, για να ορίσετε το ιδιωτικό χαρακτηριστικό attr1 στην τιμή που χρειάζεστε, καλέστε μια μέθοδο της ίδιας κλάσης χρησιμοποιώντας το αντικείμενο που δημιουργήθηκε προηγουμένως: myObj1.funcA1 (10) - με μια παρόμοια σιωπηρή λειτουργία, η τιμή 10 τοποθετείται στο attr1 χαρακτηριστικό. Όταν εργάζεστε με ένα δείκτη σε μια παρουσία μιας τάξης, μια παρόμοια λειτουργία θα μοιάζει με αυτήν: рObj1–> funcA (10). Για να ανακτήσετε το ιδιωτικό χαρακτηριστικό attr1 και να μάθετε την τιμή που είναι αποθηκευμένη σε αυτό, καλέστε μια άλλη μέθοδο της κλάσης: int Res = myObj1.funcA2 (). Σε αυτήν την περίπτωση, στην ακέραια μεταβλητή Res θα εκχωρηθεί η τιμή της κρυφής μεταβλητής κλάσης.

Βήμα 5

Εάν πρέπει να καλέσετε ένα χαρακτηριστικό με προστατευμένη κατάσταση σε όλα τα αντικείμενα των θυγατρικών τάξεων, ανατρέξτε απευθείας στη μεταβλητή του. Ωστόσο, όταν εργάζεστε σε λειτουργίες ξένων τάξεων, η πρόσβαση σε προστατευμένα δεδομένα θα πρέπει να επιτυγχάνεται με τον τρόπο που περιγράφεται παραπάνω.

Βήμα 6

Για να καλέσετε ένα χαρακτηριστικό χωρίς να δημιουργήσετε ένα αντικείμενο, δηλώστε τη μεταβλητή του στην τάξη ως στατική χρησιμοποιώντας την ακόλουθη κατασκευή: static int attr1. Σε αυτήν την περίπτωση, μπορείτε να τραβήξετε το χαρακτηριστικό οπουδήποτε στον κώδικα προγράμματος, καθορίζοντας την καταχώριση: CMyClass:: attr1.

Συνιστάται: