Πώς να ελέγξετε τους τροποποιητές πρόσβασης στη C++: Κατανόηση της ορατότητας των μελών

Pos Na Elenxete Tous Tropopoietes Prosbases Ste C Katanoese Tes Oratotetas Ton Melon



Η απόκρυψη δεδομένων είναι ένα από τα βασικά χαρακτηριστικά της C++ που αναφέρεται στην περιοριστική πρόσβαση σε δεδομένα σε μια κλάση για την αποτροπή της ανεπιθύμητης πρόσβασης στα δεδομένα μιας κλάσης από έξω. Ως εκ τούτου, οι τροποποιητές πρόσβασης χρησιμοποιούνται για να ορίσουν ποια μέλη κλάσης είναι προσβάσιμα σε ποια εξωτερική πηγή και ποια όχι.

Πρόσβαση στους τροποποιητές σε C++

Οι τροποποιητές πρόσβασης χρησιμοποιούνται για τη διαχείριση της προσβασιμότητας και της ορατότητας των δεδομένων μιας κλάσης. Θέτουν ορισμένους περιορισμούς στα μέλη δεδομένων, ώστε να μην είναι δυνατή η πρόσβαση σε αυτά από τις εξωτερικές λειτουργίες. Οι τροποποιητές πρόσβασης είναι τριών τύπων στη C++:

Τροποποιητής δημόσιας πρόσβασης σε C++

Όλα τα μέλη της τάξης που δηλώνονται κάτω από τη λέξη-κλειδί public θα είναι διαθέσιμα σε όλες τις λειτουργίες εκτός της τάξης εντός του προγράμματος. Ο τελεστής άμεσης πρόσβασης μέλους (.) επίσης γνωστός ως τελεστής κουκκίδας μπορεί να χρησιμοποιηθεί με το αντικείμενο αυτής της συγκεκριμένης κλάσης για πρόσβαση σε αυτά τα μέλη δεδομένων.







Παράδειγμα

Ο τροποποιητής δημόσιας πρόσβασης χρησιμοποιείται για τη δήλωση μιας κλάσης και τα μέλη δεδομένων του έχουν πρόσβαση από τις άλλες συναρτήσεις του προγράμματος.



#include

#include

#include

χρησιμοποιώντας το namespace std ;
κατηγορίας Τρίγωνο
{
δημόσιο :
φλοτέρ Χ , και , Με ;
κενός εισαγωγή ( )
{
cout << 'Εισαγάγετε την πλευρά x ενός τριγώνου:-' ;
τρώει >> Χ ;
cout << 'Εισαγάγετε την πλευρά y ενός τριγώνου:-' ;
τρώει >> και ;
cout << 'Εισαγάγετε την πλευρά z ενός τριγώνου:-' ;
τρώει >> Με ;
}
κενός Περιοχή ( )
{
φλοτέρ μικρό = ( Χ + και + Με ) / 2 ;
φλοτέρ περιοχή = sqrt ( μικρό * ( μικρό - Χ ) * ( μικρό - και ) * ( μικρό - Με ) ) ;
cout << ' \n Περιοχή τριγώνου =' << περιοχή ;
}
} ;
ενθ κύριος ( )
{
Τρίγωνο t1 ;
t1. εισαγωγή ( ) ;
t1. Περιοχή ( ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

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







Οι τρεις πλευρές του τριγώνου εισάγονται από τον χρήστη και το εμβαδόν του τριγώνου υπολογίζεται με πρόσβαση στις τιμές εκτός της κλάσης, χρησιμοποιώντας τον τυπικό τύπο, ο οποίος είναι 13,4164.

Τροποποιητής ιδιωτικής πρόσβασης σε C++

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



Παράδειγμα

Οι δύο κλάσεις δημόσια και ιδιωτική δηλώνονται και η τιμή επιστροφής του προγράμματος είναι το εμβαδόν του τριγώνου.

#include

#include

#include

χρησιμοποιώντας το namespace std ;
κατηγορίας Τρίγωνο
{

ιδιωτικός :
φλοτέρ Χ , και , Με ;
δημόσιο :
κενός εισαγωγή ( )

{

cout << 'Εισαγάγετε την πλευρά x ενός τριγώνου:-' ;
τρώει >> Χ ;
cout << 'Εισαγάγετε την πλευρά y ενός τριγώνου:-' ;
τρώει >> και ;
cout << 'Εισαγάγετε την πλευρά z ενός τριγώνου:-' ;
τρώει >> Με ;

}
κενός Περιοχή ( )
{

φλοτέρ μικρό = ( Χ + και + Με ) / 2 ;
φλοτέρ περιοχή = sqrt ( μικρό * ( μικρό - Χ ) * ( μικρό - και ) * ( μικρό - Με ) ) ;
cout << ' \n Περιοχή τριγώνου =' << περιοχή ;

}

} ;

ενθ κύριος ( )
{
Τρίγωνο t1 ;
t1. εισαγωγή ( ) ;
t1. Περιοχή ( ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;

}

Στην main(), το αντικείμενο t1 δεν μπορεί να έχει άμεση πρόσβαση στη μεταβλητή ιδιωτικής κλάσης float x, y και z, επομένως μπορεί να χειριστεί μόνο έμμεσα μέσω της δημόσιας συνάρτησης input(), αφού αυτή η συνάρτηση λαμβάνει τις τιμές των x, y και z.

Το εμβαδόν του τριγώνου λαμβάνεται με την πρόσβαση στην ιδιωτική κλάση μέσω του χειρισμού της χρησιμοποιώντας δημόσια κλάση. Εάν οι τιμές των x, y και z δεν δηλωθούν σε δημόσια κλάση, τότε δεν θα προσπελαστούν στην main() για υπολογισμούς.

Protected Access Modifier σε C++

Τα μέλη και οι συναρτήσεις κάτω από την προστατευμένη λέξη-κλειδί προστατεύονται, μπορούν να προσπελαστούν μόνο εντός της κλάσης και της παραγόμενης κλάσης. Οι υπόλοιπες τάξεις δεν έχουν πρόσβαση στα δεδομένα τους. Προστατεύονται ιδιαίτερα.

Παράδειγμα

Τα προστατευμένα δεδομένα κάτω από την προστατευμένη λέξη-κλειδί μπορούν να διαβαστούν μόνο εντός της κλάσης και από την κλάση που είναι η παραγόμενη κλάση. Αυτό το παράδειγμα είναι η πρακτική επίδειξη του τροποποιητή προστατευμένης πρόσβασης.

#include

#include

#include

χρησιμοποιώντας το namespace std ;
//γονική τάξη
κατηγορίας Τρίγωνο
{

προστατεύονται :
φλοτέρ Χ , και , Με ;
} ;
//παιδική τάξη
τάξη TriangleChild : δημόσιο Τρίγωνο {
δημόσιο :
κενός εισαγωγή ( )

{

cout << 'Εισαγάγετε την πλευρά x ενός τριγώνου:-' ;
τρώει >> Χ ;
cout << 'Εισαγάγετε την πλευρά y ενός τριγώνου:-' ;
τρώει >> και ;
cout << 'Εισαγάγετε την πλευρά z ενός τριγώνου:-' ;
τρώει >> Με ;

}
κενός Περιοχή ( )
{
φλοτέρ μικρό = ( Χ + και + Με ) / 2 ;
φλοτέρ περιοχή = sqrt ( μικρό * ( μικρό - Χ ) * ( μικρό - και ) * ( μικρό - Με ) ) ;
cout << ' \n Περιοχή τριγώνου =' << περιοχή ;

}
} ;

ενθ κύριος ( )

{
TriangleChild Παιδί ;
Παιδί. εισαγωγή ( ) ;
Παιδί. Περιοχή ( ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;

}

Το TriangleChild είναι μια κληρονομική κλάση που προέρχεται από την κλάση Triangle. Οι μεταβλητές x, y και z δηλώνονται σε Τρίγωνο με την προστατευμένη λέξη-κλειδί. Αυτό σημαίνει ότι αυτές οι μεταβλητές προστατεύονται αλλά μπορούν να προσπελαστούν από το TriangleChild αφού το Triangle είναι η γονική του κλάση. Οι τιμές των μεταβλητών έχουν εκχωρηθεί στο TriangleChild, παρόλο που δηλώνονται στην κλάση Triangle.

Η πρόσβαση στις μεταβλητές γίνεται μέσω της τάξης παιδιού και στη συνέχεια υπολογίζεται το εμβαδόν ενός τριγώνου.

συμπέρασμα

Η απόκρυψη δεδομένων αποτρέπει την ανεπιθύμητη πρόσβαση στα δεδομένα μιας κλάσης από έξω. Οι τροποποιητές πρόσβασης χρησιμοποιούνται για τη διαχείριση της προσβασιμότητας και της ορατότητας των δεδομένων σε ένα πρόγραμμα. Για την απόκρυψη των δεδομένων χρησιμοποιούνται ιδιωτικοί, προστατευμένοι και δημόσιοι τροποποιητές πρόσβασης. Τα δεδομένα κάτω από τη δημόσια λέξη-κλειδί μπορούν να διαβαστούν και από τις συναρτήσεις εκτός της τάξης. Τα δεδομένα που δηλώνονται ως ιδιωτικά μπορούν να διαβαστούν μόνο εντός της κλάσης, ενώ τα προστατευμένα δεδομένα έχουν πρόσβαση και από τον γονέα και τη θυγατρική τάξη.