τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
(1) Αυτόματη παραγωγή τύπων
αυτόματα συμπεραίνει τον τύπο της μεταβλητής
Το auto δεν αντιπροσωπεύει έναν πραγματικό τύπο, είναι απλώς ένα σύμβολο κράτησης θέσης για μια δήλωση τύπου
Το Auto δεν είναι παντοδύναμο και μπορεί να συναχθεί σε οποιοδήποτε σενάριο Οι μεταβλητές που δηλώνονται χρησιμοποιώντας το auto πρέπει να αρχικοποιηθούν για να επιτρέψουν στον μεταγλωττιστή να συμπεράνει τον πραγματικό του τύπο και να μετατρέψει τον αυτόματο στον πραγματικό τύπο κατά τη στιγμή της μεταγλώττισης.
Όταν η μεταβλητή δεν είναι δείκτης ή αναφορά, το αποτέλεσμα της παραγωγής δεν θα διατηρήσει τις λέξεις-κλειδιά const και πτητικές όταν η μεταβλητή είναι δείκτης ή αναφορά, το αποτέλεσμα παραγωγής θα διατηρήσει τις λέξεις-κλειδιά const και volatile.
Σενάρια όπου δεν μπορεί να χρησιμοποιηθεί η αυτόματη:
Το 1.auto δεν μπορεί να χρησιμοποιηθεί ως παράμετρος συνάρτησης, επειδή η χρήση του auto ως επίσημης παραμέτρου ισοδυναμεί με μη αρχικοποίηση της μεταβλητής και το auto δεν μπορεί να εξαχθεί.
2. Δεν μπορεί να χρησιμοποιηθεί για την προετοιμασία μεταβλητών μη στατικών μελών μιας κλάσης, επειδή οι μεταβλητές μη στατικών μελών ανήκουν σε αντικείμενα και ο τύπος του αντικειμένου δεν είναι γνωστός μέχρι να δημιουργηθεί.
3. Δεν μπορείτε να χρησιμοποιήσετε την αυτόματη λέξη-κλειδί για να ορίσετε έναν πίνακα.
4. Το Auto δεν μπορεί να χρησιμοποιηθεί για την εξαγωγή παραμέτρων προτύπου.
Συνιστώμενα σενάρια χρήσης για αυτόματη:
1. Χρησιμοποιείται για τη διέλευση εμπορευματοκιβωτίων STL.
2. Χρησιμοποιείται για γενικό προγραμματισμό.
(2) Παραγωγή τύπου decltype
Μερικές φορές δεν χρειάζεστε ή δεν μπορείτε να ορίσετε μεταβλητές, αλλά θέλετε να πάρετε έναν συγκεκριμένο τύπο ;Δηλαδή, να συμπεράνουμε τον τύπο του a μέσω του x
Κανόνες παραγωγής:
1. Η έκφραση είναι μια συνηθισμένη μεταβλητή, μια συνηθισμένη έκφραση ή μια έκφραση χρονικής κλάσης και ο τύπος που προκύπτει με χρήση του decltype είναι συνεπής με τον τύπο της έκφρασης.
2. Η έκφραση είναι μια συνάρτηση και ο τύπος που συνάγεται χρησιμοποιώντας το decltype είναι συνεπής με την επιστρεφόμενη τιμή της συνάρτησης (εάν η τιμή επιστροφής τροποποιηθεί με προσδιοριστές const, volatile, οι προσδιοριστές αγνοούνται).
3. Η έκφραση είναι μια τιμή lvalue ή είναι τυλιγμένη σε (), και το decltype χρησιμοποιείται για να συναγάγει μια αναφορά στον τύπο της έκφρασης (εάν η τιμή επιστροφής τροποποιηθεί με προσδιοριστές const ή volatile, οι προσδιοριστές αγνοούνται).
Σενάρια εφαρμογής τύπου decl:
1. Χρησιμοποιείται κυρίως στον γενικό προγραμματισμό, επειδή υπάρχει μεγάλος αριθμός αβέβαιων τύπων στον γενικό προγραμματισμό.
Το τελικό χρησιμοποιείται για τον περιορισμό της κληρονομικότητας μιας συγκεκριμένης κλάσης ή για την παράκαμψη μιας συγκεκριμένης εικονικής συνάρτησης.
Όταν το τελικό τροποποιεί μια συνάρτηση, μπορείτε να τροποποιήσετε μόνο εικονικές συναρτήσεις και η τελική λέξη-κλειδί πρέπει να τοποθετηθεί μετά την κλάση ή τη συνάρτηση. Όταν μια εικονική συνάρτηση τροποποιείται με τελικό, μπορεί να εμποδίσει την υποκλάση να παρακάμψει την εικονική συνάρτηση της γονικής κλάσης.
Όταν το final τροποποιεί μια κλάση, γράψτε final μετά το όνομα της κλάσης, υποδεικνύοντας ότι αυτή η κλάση δεν επιτρέπεται πλέον να κληρονομηθεί, δηλαδή, αυτή η κλάση δεν έχει πλέον παράγωγες κλάσεις.
Πρώιμος ρόλος: Χρησιμοποιείται για τη δήλωση χώρων ονομάτων.
Νέα συνάρτηση: ορίστε ένα ψευδώνυμο ενός τύπου Σημειώστε ότι η χρήση δίνει στην πραγματικότητα μόνο ένα ψευδώνυμο στον αρχικό τύπο, αντί να ορίσετε έναν νέο τύπο.
Η χρήση της χρήσης αντί του typedef για τον ορισμό των δεικτών συνάρτησης κάνει τον κώδικα πιο ευανάγνωστο.func)(int, string); Χρησιμοποιήστε τον ορισμό αντί: χρησιμοποιώντας func = int()(int, string);
Η χρήση μπορεί να καθορίσει ψευδώνυμα για πρότυπα, αλλά το typedef δεν μπορεί
Οι πρώτοι μεταγλωττιστές C ερμήνευσαν δύο ορθές αγκύλες ως τελεστές δεξιάς μετατόπισης
Μεταξύ των νέων δυνατοτήτων, οι κανόνες ανάλυσης του μεταγλωττιστή έχουν βελτιωθεί για να αναλύουν πολλαπλές αγκύλες ορθής γωνίας σε τερματιστές παραμέτρων προτύπου όσο το δυνατόν περισσότερο.
Η παράκαμψη χρησιμοποιείται για να διασφαλιστεί ότι η συνάρτηση που θα παρακαμφθεί στην παραγόμενη κλάση έχει την ίδια υπογραφή με την αντίστοιχη εικονική συνάρτηση της βασικής κλάσης και επίσης δηλώνει ξεκάθαρα ότι η συνάρτηση της βασικής κλάσης θα παρακαμφθεί.
Το Override γράφεται μετά τη συνάρτηση, δηλώνοντας ρητά ότι η συνάρτηση έχει παρακαμφθεί και ο μεταγλωττιστής θα ελέγξει τον τύπο της συνάρτησης και την εικονική συνάρτηση της γονικής κλάσης.
Γράψτε τον τύπο τιμής επιστροφής της συνάρτησης μετά το σώμα δήλωσης συνάρτησης, αυτόματη λειτουργία (παράμετρος 1, παράμετρος 2,...) -