τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Καλώς ήρθατε σε όλους στο blog του Pirate Cat Ou——
Μετά από ένα μεγάλο διάλειμμα, ας συνεχίσουμε να μελετάμε σκληρά!
Πίνακας περιεχομένων
Η τιμή ύπαρξης του χώρου ονομάτων:
2.C++ Λειτουργίες εισόδου και εξόδου
Στη C/C++, υπάρχει ένας μεγάλος αριθμός μεταβλητών, συναρτήσεων και κλάσεων που πρέπει να μάθετε αργότερα.Ο σκοπός της χρήσης χώρων ονομάτων είναι η τοπική προσαρμογή των ονομάτων αναγνωριστικών για την αποφυγή διενέξεων ονομάτων ή ρύπανσης ονομάτων Η λέξη-κλειδί χώρου ονομάτων φαίνεται να αντιμετωπίζει αυτό το πρόβλημα.
Εν ολίγοις, όταν υπάρχουν πολλές μεταβλητές με το ίδιο όνομα στο ίδιο έργο, μπορεί να αποτρέψει τις συγκρούσεις ονομάτων ή τη μόλυνση των ονομάτων και επίσης να διευκολύνει τη διάκριση. Μπορούμε να πούμε ότι είναι απαραίτητο για την ανάπτυξη έργων μεγάλης κλίμακας.
Ο χώρος ονομάτων είναι η λέξη-κλειδί του χώρου ονομάτων Προσθέστε το όνομα του χώρου ονομάτων μετά τη λέξη-κλειδί και προσθέστε το {} για να περιορίσετε το εύρος.
namespace hdmo { int a = 1; }Ειδοποίηση: Δεν χρειάζεται να προσθέσετε ' ; ' μετά το τελευταίο ' } ' του χώρου ονομάτων, που είναι διαφορετικό από μια δομή και παρόμοιο με μια συνάρτηση.
Η ουσία ενός χώρου ονομάτων είναι ότι δημιουργούμε έναν τομέα που είναι ανεξάρτητος από το καθολικό πεδίο εφαρμογής.Το ίδιο ισχύει και για τους χώρους ονομάτωνΤο εύρος των συναρτήσεων, των μεταβλητών κ.λπ. στον χώρο ονομάτων βρίσκεται εντός του περιορισμένου πεδίου εφαρμογής του χώρου ονομάτων και πρέπει να χρησιμοποιηθεί καλώντας τον χώρο ονομάτων., αλλά πρέπει να σημειωθεί ότιΟι μεταβλητές συνάρτησης στον χώρο ονομάτων, κ.λπ., έχουν έναν παγκόσμιο κύκλο ζωής
Ο χώρος ονομάτων μπορεί να οριστεί μόνο στο καθολικό εύρος και μπορεί επίσης να είναι ένθετος.
Στο ίδιο έργο, οι χώροι ονομάτων με το ίδιο όνομα θα θεωρούνται ο ίδιος χώρος ονομάτων.
namespace hdmo { int a = 1; } namespace hdmo { int b = 1; }Αυτή τη στιγμή, τα δύο hdmo αντιπροσωπεύουν τον ίδιο χώρο ονομάτων.
Η τυπική βιβλιοθήκη της C++ αποθηκεύεται στον χώρο ονομάτων που ονομάζεται std (στάνταρ) για την αποφυγή διενέξεων με συναρτήσεις σε άλλες γλώσσες. Αυτός είναι ο λόγος που τα προγράμματα της C++ περιέχουν βασικά α
using namespace std;
Απλώς για να συμπεριλάβουμε την τυπική βιβλιοθήκη C++.
Δεδομένου ότι ένας χώρος ονομάτων είναι ένας τομέας, εάν θέλετε να χρησιμοποιήσετε τις μεταβλητές συνάρτησής του και άλλα περιεχόμενα εξωτερικά, πρέπει να χρησιμοποιήσετε έναν τελεστή όπως μια δομή για να επιτύχετε αυτήν τη λειτουργία.
Ο χειριστής κλήσης ενός χώρου ονομάτων είναι δύο άνω και κάτω τελείες::
#include <stdio.h> namespace hdmo { int a = 1; } int a = 2; int main() { printf("%dn", a); printf("%dn", ::a); printf("%dn", hdmo::a); return 0; }
Από τα αποτελέσματα εξόδου, μπορούμε να γνωρίζουμε ότι: όταν το μπροστινό μέρος του :: είναι κενό, οι μεταβλητές του καθολικού εύρους καλούνται από προεπιλογή.
Υπάρχουν τρεις τρόποι χρήσης μεταβλητών, συναρτήσεων κ.λπ. στον χώρο ονομάτων:
1.μεμονωμένη επίσκεψη: Χρησιμοποιήστε :: για μεμονωμένη πρόσβαση σε μεταβλητές ή συναρτήσεις σε ένα χώρο ονομάτων, που είναι ο ασφαλέστερος τρόπος χρήσης του.
2.Ενιαία επέκταση : Χρησιμοποιήστε τη χρήση για επέκταση μιας μεταβλητής ή μιας συνάρτησης μόνο μετά την επέκταση, το εύρος της γίνεται καθολικό εύρος και δεν περιορίζεται πλέον από τον χώρο ονομάτων. Συνιστάται η χρήση αυτής της μεθόδου υπό κοινές συνθήκες χωρίς σύγκρουση.
3.Πλήρως διευρυμένο: Απευθείας επέκταση όλων των καθορισμένων χώρων ονομάτων Δεν συνιστάται για χρήση σε έργα Ο κίνδυνος σύγκρουσης είναι υψηλός. cout, δεν χρειάζεται να βάλετε πρόθεμα std::)
Στη γλώσσα C, οι δηλώσεις εισόδου και εξόδου μας είναι scanf και printf αντίστοιχα, η C++ είναι επίσης συμβατή με τις δηλώσεις εισόδου και εξόδου της γλώσσας C, αλλά έχει επίσης τις δικές της συναρτήσεις εισόδου και εξόδου, δηλαδή cin και cout.
Για να χρησιμοποιήσετε τις συναρτήσεις cin και cout, πρέπει να συμπεριλάβετε<iostream>Τυπική βιβλιοθήκη ροής εισόδου και εξόδου και πρέπει να περιλαμβάνει την τυπική βιβλιοθήκη συναρτήσεων C++
- #include <iostream>
- using namespace std;
Όταν χρησιμοποιείτε cin, χρησιμοποιήστε '>>' για να εισαγάγετε.
Όταν χρησιμοποιείτε το cout, χρησιμοποιήστε το '<<' για έξοδο.
<< είναι ο τελεστής εισαγωγής ροής, >> είναι ο τελεστής εξαγωγής ροής (<< και >> αντιπροσωπεύουν επίσης τελεστές μετατόπισης αριστερά και δεξιά στη γλώσσα C)
- #include <iostream>
- using namespace std;
- int main()
- {
- int a = 0;
- cin >> a;
- cout << a << endl;
- printf("%dn", a);
- return 0;
- }
Μπορούμε πρώτα να κατανοήσουμε το endl ως αλλαγή γραμμής 'n' το βασικό μέρος δεν θα εξηγηθεί πάρα πολύ και θα προστεθεί σε μελλοντικές μελέτες.
Μπορούμε να δούμε από τον παραπάνω κώδικα ότι το cin και το cout δεν χρησιμοποιούν %d, %c, κ.λπ. όπως scanf και printf για τον έλεγχο της μορφής εισόδου και εξόδου των μεταβλητώνΤο cin και το cout μπορούν να προσδιορίσουν αυτόματα τους τύπους μεταβλητών και δεδομένων, που είναι ένα σχετικά βολικό μέρος.
Στο περιβάλλον VS2022, ο παραπάνω κώδικας δεν περιέχει<stdio.h> , μπορείτε επίσης να χρησιμοποιήσετε τις συναρτήσεις scanf και print, επειδή στο VS<iostream>έμμεσα περιλαμβάνονται<stdio.h>, επομένως μπορεί να χρησιμοποιηθεί απευθείας, αλλά μπορεί να χρειαστεί να συμπεριληφθεί σε άλλα περιβάλλοντα μεταγλώττισης.<stdio.h> .
Όταν θέλετε να επιτύχετε λειτουργίες όπως η ακρίβεια ελέγχου, συνιστάται να χρησιμοποιείτε απευθείας τις μεθόδους εισόδου και εξόδου της γλώσσας C. Θα είναι πιο ενοχλητικό να εφαρμόσετε αυτήν τη λειτουργία στη C++.
Θα πρέπει να σημειωθεί ότι το scanf και το printf είναι πιο γρήγορα από το cin και το cout εξήγηση ακόμα.
- #include <iostream>
- using namespace std;
- int main()
- {
- // 在io需求⽐较⾼的地⽅,如部分⼤量输⼊的竞赛题中,加上以下3⾏代码
- // 可以提⾼C++IO效率
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- return 0;
- }
Οι προεπιλεγμένες παράμετροι είναι να δίνουν στις παραμέτρους συνάρτησης μια προεπιλεγμένη τιμή όταν δηλώνουμε ή ορίζουμε μια συνάρτηση, εάν η προεπιλεγμένη παράμετρος δεν περάσει μια τιμή, θα χρησιμοποιηθεί η καθορισμένη προεπιλεγμένη τιμή θα χρησιμοποιηθεί αξία.
Οι προεπιλεγμένες παράμετροι χωρίζονται σε πλήρη προεπιλογή και ημι-προεπιλογή σημαίνει ότι σε όλες τις τυπικές παραμέτρους δίνονται προεπιλεγμένες τιμές και ημι-προεπιλογή σημαίνει ότι ορισμένες τυπικές παραμέτρους έχουν προεπιλεγμένες τιμές. Και η C++ ορίζει ότι οι ημι-προεπιλεγμένες παράμετροι πρέπει να προκαθορίζονται διαδοχικά από τα δεξιά προς τα αριστερά και δεν μπορούν να μεταπηδούν στις προεπιλεγμένες τιμές ανά διαστήματα.
- #include <iostream>
- using namespace std;
- namespace hdmo
- {
- //全缺省
- int Fun1(int x = 0, int y = 0)
- {
- return x + y;
- }
- //半缺省
- int Fun2(int x, int y = 0)
- {
- return x + y;
- }
- }
-
- int main()
- {
- cout << hdmo::Fun1() << endl;//全缺省可以不传参
- cout << hdmo::Fun1(1) << endl;
- cout << hdmo::Fun1(1,1) << endl;
- /*
- cout << hdmo::Fun2() << endl;//半缺省不能不传参
- */
- cout << hdmo::Fun2(2) << endl;
- cout << hdmo::Fun2(2,2) << endl;
- return 0;
- }
Το αποτέλεσμα του παραπάνω κώδικα είναι:
Η ημιπροεπιλογή πρέπει να διασφαλίζει τον ορισμό και τη συνέχεια των προεπιλεγμένων παραμέτρων από τα δεξιά προς τα αριστερά, με τις κανονικές παραμέτρους στα αριστερά και τις προεπιλεγμένες παραμέτρους στα δεξιά.
Υπερφόρτωση συνάρτησης σημαίνει ότι υπάρχουν πολλές συναρτήσεις με το ίδιο όνομα συνάρτησης την ίδια στιγμή. Το ίδιο όνομα συνάρτησης αντιπροσωπεύει πολλές συναρτήσεις ταυτόχρονα.
Η διαφορά μεταξύ τους καθορίζεται από τον τύπο και τον αριθμό της παραμέτρου και δεν έχει καμία σχέση με τον τύπο της τιμής επιστροφής.Δεν είναι δυνατή η υπερφόρτωση δύο συναρτήσεων με το ίδιο όνομα που έχουν μόνο διαφορετικούς τύπους τιμών επιστροφής。
- #include <iostream>
- using namespace std;
- namespace hdmo
- {
-
- int Add(int x, int y)
- {
- return x + y;
- }
- double Add(double x, int y)
- {
- return x + y;
- }
- double Add(int x, double y)
- {
- return x + y;
- }
- double Add(double x, double y)
- {
- return x + y;
- }
- }
- int main()
- {
- using hdmo::Add;
- cout << Add(1, 1) << endl;
- cout << Add(1.1, 1) << endl;
- cout << Add(1, 1.1) << endl;
- cout << Add(1.1, 1.1) << endl;
- return 0;
- }
Το αποτέλεσμα είναι:
Από τον παραπάνω κώδικα, μπορούμε να δούμε ότι η χρήση υπερφόρτωσης μπορεί να μας κάνει να χρησιμοποιούμε τις λειτουργίες πιο άνετα. Στη γλώσσα C, για να επιτύχουμε το παραπάνω εφέ, πρέπει να χρησιμοποιήσουμε τέσσερα διαφορετικά ονόματα συναρτήσεων για να ορίσουμε τέσσερις συναρτήσεις και να τις χρησιμοποιήσουμε διαφορετικά όταν χρησιμοποιούνται με υπερφόρτωση στη C++, μπορούμε να ενοποιήσουμε όλες τις συναρτήσεις προσθήκης, καθώς δεν χρειάζεται να διακρίνουμε ένα όνομα όταν το χρησιμοποιείτε, απλώς χρησιμοποιήστε το απευθείας, κάτι που είναι πολύ βολικό.
Αυτό το άρθρο σχετικά με τα βασικά για να ξεκινήσετε με τη C++ θα τελειώσει εδώ Αργότερα, θα συνεχίσουμε να εξηγούμε άλλες βασικές γνώσεις.
Εάν έχετε ελλείψεις, μπορείτε να τις επισημάνετε μέσω προσωπικού μηνύματος ή στην περιοχή σχολίων!
Αρχική σελίδα:Ιστολόγιο Pirate Cat Ou-CSDN
Εδώ είναι ο μικρός γλάρος! Τα λέμε την επόμενη φορά~(*¯︶¯*)~