Σπίτι Προσωπικά Οικονομικά 8 C ++ Χαρακτηριστικά όχι-τόσο-αρχάριων - dummies

8 C ++ Χαρακτηριστικά όχι-τόσο-αρχάριων - dummies

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

Βίντεο: Apple iPhone 8 vs 8 Plus: Unboxing & Review (All Colors) 2024

Βίντεο: Apple iPhone 8 vs 8 Plus: Unboxing & Review (All Colors) 2024
Anonim

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

Η εντολή C ++ goto

Αυτή η εντολή πηγαίνει όλος ο δρόμος πίσω στο C, ο πρόγονος της C ++. Κατ 'αρχήν, η χρήση αυτής της εντολής είναι εύκολη. Μπορείτε να τοποθετήσετε την ετικέτα? όπου θέλεις. Όταν η C ++ συναντά αυτή την εντολή, ο έλεγχος περνά αμέσως στην ετικέτα, όπως φαίνεται σε αυτό το απόσπασμα κώδικα:

για (;;) {if (conditional expression) {goto outahere;} // … οτιδήποτε θέλετε …} outahere: // … το πρόγραμμα συνεχίζεται εδώ … < goto εισάγει πολλούς τρόπους για να σπάσει. Σε κάθε περίπτωση, δεν χρειάστηκε πολύς καιρός πριν οι προγραμματιστές παρατήρησαν ότι οι δύο πιο κοινές χρήσεις του geto ήταν να κλείσουν βρόχους και να προχωρήσουν στην επόμενη περίπτωση μέσα σε ένα βρόχο. Η Επιτροπή Προτύπων Γ εισήγαγε σπάσιμο και συνέχισε και σχεδόν έκοψε την ανάγκη για την εντολή του geto.

Ο τριπλός τελεστής C ++

Ο τριαδικός τελεστής

είναι ένας χειριστής μοναδικός για C και C ++. Λειτουργεί ως εξής: int n = (υπό όρους); έκφραση1: έκφραση2;

Το? ο χειριστής αξιολογεί πρώτα το υπό όρους. Εάν η συνθήκη είναι αληθής, τότε η τιμή της έκφρασης είναι ίση με την τιμή της έκφρασης1. διαφορετικά, είναι ίση με την τιμή της έκφρασης2.

Για παράδειγμα, θα μπορούσατε να εφαρμόσετε τη μέγιστη () συνάρτηση ως εξής:

int max (int n1, int n2) {επιστροφή (n1> n2); n1: n2;}
Ο τριμερής χειριστής μπορεί να εφαρμοστεί σε οποιοδήποτε τύπο αριθμητικού αλλά δεν μπορεί να υπερφορτωθεί. Ο τριμερής χειριστής είναι πραγματικά μια έκφραση - όχι μια δήλωση ελέγχου όπως μια if.

Οι απαριθμημένοι τύποι σε C ++

Η απλή ιδέα είναι ότι μπορείτε να ορίσετε σταθερές και να αφήσετε την C ++ να τις εκχωρήσει, όπως φαίνεται εδώ:

enum Colors {BLACK, BLUE, GREEN, YELLOW, RED}; Χρώματα myColor = ΜΑΥΡΟ;

Το πρόβλημα με απαριθμημένους τύπους έγκειται στην υλοποίηση: Αντί να δημιουργηθεί ένας αληθινός τύπος, η C ++ χρησιμοποιεί ακέραιους αριθμούς. Σε αυτήν την περίπτωση, BLACK έχει εκχωρηθεί η τιμή 0, BLUE έχει εκχωρηθεί 1, GREEN2, και ούτω καθεξής.

Χρώματα κατηγορίας enum {ΜΑΥΡΟ, ΜΠΛΕ, ΠΡΑΣΙΝΟ, ΚΙΤΡΙΝΟ, ΚΟΚΚΙΝΟ}. Χρώματα myColor = Χρώματα:: ΜΑΥΡΟ;

Σε αυτή την έκδοση, τα χρώματα είναι ένας νέος τύπος.Κάθε μία από τις σταθερές, ΜΑΥΡΟ, ΜΠΛΕ, και ούτω καθεξής, είναι μέλη τύπου Χρώματα. Μπορείτε ακόμα να μεταδώσετε ένα αντικείμενο κατηγορίας χρωμάτων σε ένα int, αλλά ένα σιωπηλό cast δεν επιτρέπεται.

Χώροι ονομάτων C ++

Είναι δυνατό να δώσετε το ίδιο όνομα σε διαφορετικές βιβλιοθήκες σε διαφορετικές βιβλιοθήκες. Για παράδειγμα, η συνάρτηση grade () μέσα στη βιβλιοθήκη σπουδαστών πιθανότατα αποδίδει ένα βαθμό, ενώ η βαθμίδα () συνάρτηση μέσα στη βιβλιοθήκη CivilEngineering μπορεί να θέσει την κλίση στην πλευρά ενός λόφου. Για να αποφευχθεί αυτό το πρόβλημα, η C ++ επιτρέπει στον προγραμματιστή να τοποθετήσει τον κώδικα του σε ξεχωριστό χώρο ονομάτων. Έτσι, ο βαθμός εντός του χώρου ονομάτων των σπουδαστών είναι διαφορετικός από τον βαθμό στο CivilEngineering.

Ο χώρος ονομάτων είναι πάνω και πέρα ​​από το όνομα της κλάσης. Η συνάρτηση μέλους βαθμού () μέλους της κατηγορίας BullDozer στον τομέα ονομάτων της CivilEngineering έχει το εκτεταμένο όνομα CivilEngineering:: BullDozer:: grade ().

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

Καθαρές εικονικές λειτουργίες σε C ++

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

καθαρή λειτουργία εικονικού μέλους

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

Η συμβολοσειρά δεν είναι καν τάξη. Είναι μια περίπτωση μιας κλάσης προτύπου. Τα μηνύματα σφάλματος μπορεί να είναι εκπληκτικά.

Πολλαπλή κληρονομιά σε C ++

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

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

Τα πρότυπα C ++ και η τυπική βιβλιοθήκη προτύπων

Οι δημιουργοί του C ++ παρατήρησαν πως παρόμοιες λειτουργίες όπως αυτές που ακολουθούν είναι:

int max (int n1, int n2) {if (n1> n2) {return n1; (n1> n2) {επιστρέφει n1;} επιστρέφει n2;} double max (διπλό n1, διπλό n2) {if (n1> n2) {επιστροφή n1; επιστροφή n2;}

"Δεν θα ήταν δροσερό", λέει κάποιος σε άλλο, "εάν θα μπορούσατε να αντικαταστήσετε τον τύπο με ψευδο-τύπο Τ που θα μπορούσατε να ορίσετε κατά τον χρόνο σύνταξης;"Πριν το ξέρεις, τα presto - πρότυπα γίνονται μέρος της C ++:

πρότυπο T max (Tt1, Tt2) {if (t1> t2) {επιστροφή t1; Δημιουργήστε ένα μέγιστο (int, int) αντικαθιστώντας το T με int και συνθέτοντας το αποτέλεσμα, δημιουργώντας ένα μέγιστο (διπλό, διπλό) αντικαθιστώντας το T με διπλό και ούτω καθεξής. Η Επιτροπή Προτύπων εξέδωσε ακόμη μια ολόκληρη βιβλιοθήκη των τάξεων, γνωστή ως Standard Template Library (STL για σύντομο χρονικό διάστημα), με βάση τις κατηγορίες προτύπων.

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

8 C ++ Χαρακτηριστικά όχι-τόσο-αρχάριων - dummies

Η επιλογή των συντακτών

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Χρησιμοποιώντας το Ο έλεγχος εξισορρόπησης λευκού στο Canon EOS 70D σας μπορεί εύκολα και γρήγορα να διορθώσει προβλήματα χρώματος. Οι διαθέσιμες ρυθμίσεις ισορροπίας λευκού απεικονίζονται με τα σύμβολα που εμφανίζονται στον παρακάτω πίνακα. Μπορείτε να δείτε την τρέχουσα ρύθμιση στην οθόνη Ρυθμίσεις λήψης, όπως φαίνεται στο παρακάτω σχήμα. Για να προσαρμόσετε τη ρύθμιση, έχετε ...

Η επιλογή των συντακτών

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

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

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Η πρώτη προσπάθεια. Αναμείνετε να βελτιώσετε το περίγραμμα επιλογής σας τουλάχιστον λίγο. Μπορείτε να βελτιώσετε το περίγραμμα σας με διάφορους τρόπους: Αντίστροφη περιγράμματος επιλογής: Απλά χρησιμοποιήστε την εντολή Invert (ή την αντίστοιχη εντολή του προγράμματος). Προσθέστε σε περίγραμμα επιλογής: ...

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

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

Η επιλογή των συντακτών

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Για να εργαστείτε ευκολότερα με το παράθυρο του Μητρώου και να ελέγξετε τον τρόπο εμφάνισής του: Το κουμπί Μετάβαση: Εμφανίζει το παράθυρο διαλόγου Μετάβαση (Go To). Αυτό το παράθυρο διαλόγου σάς επιτρέπει να αναζητήσετε μια συναλλαγή στο παράθυρο "Εγγραφή". Για παράδειγμα, μπορείτε να αναζητήσετε ...

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

Σε μεγάλες εταιρείες με εκατοντάδες ή χιλιάδες εργαζόμενοι, δύο ή τρία άτομα δαπανούν μεγάλο μέρος ή και ολόκληρο το χρόνο εργασίας τους με τα στοιχεία που έχουν εγγραφεί στον προϋπολογισμό. Για να επεξεργαστείτε έναν υπάρχοντα προϋπολογισμό στο QuickBooks, ακολουθήστε τα παρακάτω βήματα:

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

Από, Προς, Στήλες και Ταξινόμηση. Αυτά τα πλαίσια σας επιτρέπουν επίσης να ελέγχετε τις πληροφορίες που εμφανίζονται στο παράθυρο αναφοράς και την εμφάνιση των πληροφοριών. Για παράδειγμα, μπορείτε να ενημερώσετε το QuickBooks για το χρονικό διάστημα που θέλετε ...