Τι κάνει :: Κάνει στη C++;

Ti Kanei Kanei Ste C



Η C++ είναι μια ευέλικτη γλώσσα προγραμματισμού που προσφέρει στους προγραμματιστές ένα ευρύ φάσμα λειτουργιών. Ένα από τα πιο συχνά χρησιμοποιούμενα χαρακτηριστικά στη C++ είναι το τελεστής ανάλυσης πεδίου , επίσης γνωστό ως το διπλή άνω και κάτω τελεία (::) . Παρά το γεγονός ότι αποτελεί ζωτικό μέρος της γλώσσας, η διπλή άνω και κάτω τελεία Ο χειριστής μπορεί να προκαλέσει σύγχυση για πολλούς προγραμματιστές, ιδιαίτερα αυτούς που είναι νέοι σε αυτόν.

Σε αυτόν τον οδηγό, θα εξετάσουμε το τελεστής διπλής άνω τελείας (::). σε C++ και πώς λειτουργεί σε διαφορετικά σενάρια.

Τι κάνει :: Κάνει στη C++;

Στην C++, το ανάλυση εύρους χειριστής (::) χρησιμοποιείται για την ανάκτηση των ονομάτων της μεταβλητής που υπάρχουν σε διάφορα επίπεδα εμβέλειας. Το πεδίο εφαρμογής στον προγραμματισμό αναφέρεται στο πλαίσιο όπου είναι δυνατή η πρόσβαση σε μεταβλητές και συναρτήσεις.







Χρήσεις του :: σε διαφορετικές περιπτώσεις στη C++

Στην C++, το τελεστής ανάλυσης πεδίου (::) έχει διάφορες χρήσεις ανάλογα με το πλαίσιο στο οποίο χρησιμοποιείται. Ακολουθούν ορισμένες αξιοσημείωτες χρήσεις αυτού του τελεστή:



1: Πρόσβαση σε μια μεταβλητή ή μια συνάρτηση σε διαφορετικό χώρο ονομάτων

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



Στην C++, μπορείτε να χρησιμοποιήσετε το τελεστής ανάλυσης πεδίου (::) μαζί με χώρο ονομάτων όνομα και τη μεταβλητή ή το όνομα της συνάρτησης για πρόσβαση σε μια μεταβλητή ή συνάρτηση που ορίζεται σε διαφορετικό χώρο ονομάτων. Αυτό σας επιτρέπει να έχετε πρόσβαση στη μεταβλητή ή τη συνάρτηση από το a χώρο ονομάτων άλλο από αυτό στο οποίο δημιουργήθηκε.





Για να κατανοήσετε την παραπάνω περίπτωση, λάβετε υπόψη τον ακόλουθο κώδικα ως παράδειγμα:

#include

χρησιμοποιώντας το namespace std ;

μαθηματικά χώρου ονομάτων {

συνθ διπλό πι = 3,14159 ;

διπλό τετράγωνο ( διπλό Χ ) {

ΕΠΙΣΤΡΟΦΗ Χ * Χ ;

}

}

ενθ κύριος ( ) {

cout << 'Η τιμή του PI είναι: ' << μαθηματικά :: πι << endl ;

cout << 'Το τετράγωνο του 5 είναι:' << μαθηματικά :: τετράγωνο ( 5 ) << endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Ο παραπάνω κώδικας χρησιμοποιεί το μαθηματικός χώρος ονομάτων για πρόσβαση στο 'ΠΙ' σταθερό και 'τετράγωνο' λειτουργία χρησιμοποιώντας το τελεστής ανάλυσης πεδίου '::' . Στη συνέχεια εκτυπώνει τις τιμές στην κονσόλα.



Παραγωγή

2: Πρόσβαση στην καθολική μεταβλητή στο πρόγραμμα

Όταν στο πρόγραμμα υπάρχει το ίδιο όνομα τοπικών και καθολικών μεταβλητών, η τοπική μεταβλητή μπορεί να αποκρύψει την καθολική. Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε το τελεστής ανάλυσης πεδίου (::) για πρόσβαση στην καθολική μεταβλητή. Αυτός ο τελεστής μας επιτρέπει να αναφερόμαστε ρητά στην καθολική μεταβλητή με βάση το εύρος της.

Για παράδειγμα, στον κώδικα που δίνεται παρακάτω, έχουμε αναφερθεί στην καθολική μεταβλητή 'ένα «μέσω του τελεστής ανάλυσης πεδίου (::) , μέσα από μια συνάρτηση όπου έχει οριστεί μια τοπική μεταβλητή με το ίδιο όνομα:

#include

χρησιμοποιώντας το namespace std ;

ενθ ένα = δεκαπέντε ;

ενθ κύριος ( )

{

ενθ ένα = 35 ;

cout << 'Η τιμή της καθολικής μεταβλητής a είναι ' << :: ένα << endl ;

cout << 'Η τιμή της τοπικής μεταβλητής a είναι ' << ένα << endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Στον παραπάνω κώδικα, η μεταβλητή a παρούσα εκτός της κύριας συνάρτησης είναι το καθολική μεταβλητή και η μεταβλητή a μέσα στην κύρια συνάρτηση είναι το τοπική μεταβλητή με το ίδιο όνομα με την καθολική μεταβλητή. Στη δήλωση cout, χρησιμοποιήσαμε τον τελεστή ανάλυσης εύρους για την εκτύπωση της καθολικής μεταβλητής ένα .

Παραγωγή

3: Ορίστε μια συνάρτηση εκτός της τάξης

Στην C++, μπορείτε να ορίσετε μια συνάρτηση κλάσης εκτός του ορισμού της κλάσης και μπορεί να γίνει χρησιμοποιώντας το τελεστής ανάλυσης πεδίου (::) για να καθορίσετε σε ποια κλάση ανήκει η συνάρτηση. Αυτό είναι απαραίτητο επειδή η συνάρτηση ορίζεται εκτός του πεδίου της κλάσης.

Ακολουθεί ένα παράδειγμα κώδικα που δείχνει αυτή τη χρήση του τελεστής ανάλυσης πεδίου :

#include

χρησιμοποιώντας το namespace std ;



τάξη myClass {

δημόσιο :

κενός η λειτουργία μου ( ) ;

} ;

κενός η τάξη μου :: η λειτουργία μου ( ) {

cout << 'Myfunction() Called!' ;

}

ενθ κύριος ( )

{

myClass classObj ;

classObj. η λειτουργία μου ( ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Στον παραπάνω κωδικό, η συνάρτηση μέλους myfunction() ορίζεται εκτός της κλάσης χρησιμοποιώντας το τελεστής ανάλυσης πεδίου :: να το διευκρινίσουμε myfunction() ανήκει στην τάξη myClass.

Παραγωγή

4: Πρόσβαση στα Στατικά Μέλη της Τάξης

Στην C++, όταν υπάρχει ένα στατικό μέλος και μια τοπική μεταβλητή με το ίδιο όνομα υπάρχει μέσα στην κλάση, η τελεστής ανάλυσης πεδίου (::) μπορεί να χρησιμοποιηθεί για πρόσβαση στα στατικά μέλη μιας κλάσης. Αυτό επιτρέπει στο πρόγραμμα να διακρίνει μεταξύ της τοπικής μεταβλητής και του στατικού μέλους.

Ακολουθεί ένα παράδειγμα κώδικα που σχετίζεται με τη χρήση του τελεστής ανάλυσης πεδίου για μια τέτοια περίπτωση:

#include

χρησιμοποιώντας το namespace std ;

τάξη myClass {

δημόσιο :

στατικός ενθ myStatVar ;

} ;

ενθ η τάξη μου :: myStatVar = 5 ;

ενθ κύριος ( ) {

ενθ myStatVar = 10 ;

cout << 'Τοπική μεταβλητή myStatVar: ' << myStatVar << endl ;

cout << 'Μεταβλητή κλάσης myStatVar: ' << η τάξη μου :: myStatVar << endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

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

Παραγωγή

5: Χρήση με πολλαπλές κληρονομιές

ο τελεστής ανάλυσης πεδίου (::) χρησιμοποιείται επίσης για να υποδείξει ποια έκδοση ενός μέλους θα χρησιμοποιηθεί όταν μια κλάση C++ προέρχεται από πολλές γονικές κλάσεις που έχουν μεταβλητές μελών ή συναρτήσεις με το ίδιο όνομα. Μπορούμε να διακρίνουμε διάφορες εκδόσεις του ίδιου μέλους χρησιμοποιώντας το τελεστής ανάλυσης πεδίου ακολουθούμενο από το όνομα της γονικής τάξης και το όνομα του μέλους.

#include

χρησιμοποιώντας το namespace std ;

τάξη Γονέας 1 {

δημόσιο :

κενός Τυπώνω ( ) {

cout << 'Αυτή είναι η συνάρτηση εκτύπωσης κατηγορίας Parent1.' << endl ;

}

} ;

τάξη Γονέας 2 {
δημόσιο :
κενός Τυπώνω ( ) {
cout << 'Αυτή είναι η συνάρτηση εκτύπωσης κατηγορίας Parent2.' << endl ;
}
} ;
τάξη myClass : δημόσιος Γονέας1 , δημόσιος Γονέας2 {
ιδιωτικός :
ενθ σε ένα ;

δημόσιο :
η τάξη μου ( ενθ n ) {
σε ένα = n ;
}
κενός Τυπώνω ( ) {
Γονέας 1 :: Τυπώνω ( ) ; // κλήση της συνάρτησης εκτύπωσης του Parent1
Γονέας 2 :: Τυπώνω ( ) ; // κλήση της συνάρτησης εκτύπωσης του Parent2
cout << 'Η τιμή του num είναι:' << σε ένα << endl ; // εκτυπώστε την τιμή του num
}
} ;
ενθ κύριος ( ) {
myClass αντικ ( 42 ) ; // δημιουργήστε ένα αντικείμενο της MyClass με το num αρχικοποιημένο σε 42
αντικ. Τυπώνω ( ) ; // καλέστε τη συνάρτηση print() του αντικειμένου
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Το παραπάνω πρόγραμμα δείχνει τη χρήση του τελεστής ανάλυσης πεδίου (::) για διάκριση μεταξύ των λειτουργιών εκτύπωσης του Γονέας 1 και Γονέας 2 όταν και οι δύο κλάσεις κληρονομούνται από η τάξη μου. Καλώντας τις συναρτήσεις με το Τάξη γονέων όνομα που προηγείται του ονόματος της συνάρτησης, μπορούμε να καθορίσουμε ποια έκδοση της συνάρτησης θα χρησιμοποιήσουμε.

Παραγωγή

Συμπέρασμα

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