Προγραμματισμός

Εκμάθηση C++ για αρχάριους

30 Οκτωβρίου 2021

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

Τι είναι η C++;

Η C++ είναι μια γλώσσα πολλαπλών πλατφορμών που χρησιμοποιείται για τη δημιουργία εφαρμογών υψηλής απόδοσης. Ο Bjarne Stroustrup το ανέπτυξε ως επέκταση στη γλώσσα C. Η C++ δίνει στους προγραμματιστές τον έλεγχο των πόρων και της μνήμης του συστήματος. Η γλώσσα ενημερώθηκε τρεις σημαντικές φορές το 2011, το 2014 και το 2017 σε C++11, C++14 και C++17.

Γιατί να χρησιμοποιήσετε C++

  • Η C++ είναι μια από τις πιο δημοφιλείς γλώσσες προγραμματισμού.
  • Η C++ μπορεί να βρεθεί σε λειτουργικά συστήματα, GUI και ενσωματωμένα συστήματα.
  • Είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που δίνει μια σαφή δομή στα προγράμματα και επιτρέπει την επαναχρησιμοποίηση του κώδικα, μειώνοντας το κόστος ανάπτυξης.
  • Είναι φορητό και μπορεί να χρησιμοποιηθεί για την ανάπτυξη εφαρμογών που μπορούν να προσαρμοστούν σε πολλές πλατφόρμες.
  • Καθώς η C++ είναι κοντά στη C# και Ιάβα , διευκολύνει τους προγραμματιστές να μεταβούν σε C++ ή το αντίστροφο.

Χαρακτηριστικά

    Απλός: Η C++ είναι μια απλή γλώσσα επειδή παρέχει μια δομημένη προσέγγιση σε ένα πλούσιο σύνολο συναρτήσεων, τύπων δεδομένων κ.λπ.Φορητός: Σε αντίθεση με τη γλώσσα assembly, τα προγράμματα c εκτελούνται σε πολλές μηχανές με ελάχιστη ή καθόλου αλλαγή. Αλλά δεν είναι ανεξάρτητο από πλατφόρμα.Γλώσσα προγραμματισμού μεσαίου επιπέδου: Η C++ χρησιμοποιείται για προγραμματισμό χαμηλού επιπέδου. Χρησιμοποιείται για την ανάπτυξη εφαρμογών όπως ο πυρήνας, το πρόγραμμα οδήγησης κ.λπ. Υποστηρίζει επίσης τη δυνατότητα της γλώσσας υψηλού επιπέδου.Δομημένη γλώσσα προγραμματισμού: Η C++ είναι μια δομημένη γλώσσα προγραμματισμού επειδή μπορείτε να χωρίσετε το πρόγραμμα σε μέρη χρησιμοποιώντας συναρτήσεις.Πλούσια Βιβλιοθήκη: Η C++ παρέχει ενσωματωμένες λειτουργίες που κάνουν την ανάπτυξη γρήγορη.Διαχείριση μνήμης: Σας προσφέρει τη δυνατότητα δυναμικής εκχώρησης μνήμης. Μπορείτε να ελευθερώσετε την εκχωρημένη μνήμη καλώντας τη συνάρτηση free().Ταχύτητα: Ο χρόνος μεταγλώττισης και εκτέλεσης της γλώσσας C++ είναι γρήγορος.Δείκτης: Η C++ προσφέρει τη δυνατότητα των δεικτών. Μπορείτε να αλληλεπιδράσετε απευθείας με τη μνήμη χρησιμοποιώντας δείκτες.Αναδρομή: Στη C++, μπορείτε να καλέσετε τη συνάρτηση εντός της συνάρτησης. Παρέχει δυνατότητα επαναχρησιμοποίησης κώδικα για κάθε λειτουργία.Επεκτάσιμο: Η γλώσσα C++ είναι επεκτάσιμη γιατί μπορεί να υιοθετήσει γρήγορα νέες δυνατότητες.Αντικειμενοστραφής: Η C++ είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού. Το OOPs διευκολύνει τη συντήρηση και την ανάπτυξη, ενώ, στη γλώσσα προγραμματισμού προσανατολισμένη στη διαδικασία, δεν είναι εύκολο να διαχειριστείτε εάν ο κώδικας αυξάνεται καθώς το έργο το μέγεθος αυξάνεται.Βασισμένο σε μεταγλωττιστή: Είναι μια γλώσσα προγραμματισμού που βασίζεται σε μεταγλωττιστή. Πρώτα, πρέπει να μεταγλωττίσετε το πρόγραμμα χρησιμοποιώντας έναν μεταγλωττιστή και, στη συνέχεια, μπορείτε να εκτελέσετε το πρόγραμμα.

Ρύθμιση τοπικού περιβάλλοντος

Καλό θα ήταν να είχατε το παρακάτω λογισμικό στον υπολογιστή σας.

    C++ Compiler

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

    Επεξεργαστής κειμένου

Χρησιμοποιείται από το λογισμικό για την πληκτρολόγηση. Παραδείγματα περιλαμβάνουν εντολές Windows Notepad, OS Edit, Short, Epsilon, EMACS και Vim ή VI. Τα αρχεία που δημιουργείτε με το πρόγραμμα επεξεργασίας αναφέρονται ως αρχεία προέλευσης και τα αρχεία C++ αναφέρονται ως .cpp, .cp ή .c. Για να ξεκινήσετε τον προγραμματισμό σας στη C++, πρέπει να υπάρχει ένα πρόγραμμα επεξεργασίας κειμένου.

    Βασική Σύνταξη

Ας δούμε τώρα τι σημαίνουν μια κλάση, ένα αντικείμενο, οι μέθοδοι και οι μεταβλητές παρουσίας.

    Αντικείμενο− Τα αντικείμενα έχουν καταστάσεις και συμπεριφορές. Παράδειγμα: Μια γάτα έχει συνθήκες – χρώμα, όνομα, φυλή και πράξεις – κουνάει, νιαουρίζει, τρώει. Ένα αντικείμενο είναι ένα παράδειγμα της κλάσης.Τάξη− Μια κλάση ορίζεται ως ένα προσχέδιο που περιγράφει τις συμπεριφορές/καταστάσεις που υποστηρίζει ένα αντικείμενο του τύπου του.Μέθοδοι− Μια μέθοδος είναι η συμπεριφορά. Μια κλάση μπορεί να περιέχει πολλές μεθόδους. Στις μεθόδους όπου γράφεται η λογική, τα δεδομένα χειρίζονται και οι ενέργειες εκτελούνται.Μεταβλητές Στιγμιότυπου− Υπάρχει μια μοναδική συλλογή μεταβλητών στιγμιότυπου σε κάθε αντικείμενο. Η συνθήκη μιας οντότητας δημιουργείται από τις τιμές που έχουν εκχωρηθεί σε αυτές τις παραδειγματικές μεταβλητές.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ας δούμε τα διάφορα μέρη του προγράμματος που αναφέρονται παραπάνω −

  • Απαιτεί μια κεφαλίδα.
  • Χρησιμοποιήστε το namespace std. για να προειδοποιήσει τον μεταγλωττιστή να χρησιμοποιήσει τον χώρο ονομάτων std.
  • Η γραμμή int main() είναι το κύριο χαρακτηριστικό όπου ξεκινά η εκτέλεση του προγράμματος.
  • Η επόμενη γραμμή κόβεται σε<< Hello World; the word Hello World is reflected on the keyboard.
  • Η επόμενη γραμμή επιστρέφει 0. η συνάρτηση main() τερματίζεται.

C++ Βασική Είσοδος/Έξοδος

Η λειτουργία εισόδου/εξόδου C++ χρησιμοποιεί την έννοια της ροής. Η ροή είναι η ακολουθία των byte ή η ροή δεδομένων. Κάνει την απόδοση γρήγορη.

Εάν τα byte ρέουν από την κύρια μνήμη σε μια συσκευή όπως εκτυπωτή, οθόνη προβολής ή σύνδεση δικτύου κ.λπ., αυτό είναι γνωστό ως λειτουργία εξόδου.

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

Τυπική ροή εξόδου (cout)

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Τυπική ροή εισόδου (cin)

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Τυπική τελική γραμμή (endl)

ο endl είναι ένα προκαθορισμένο αντικείμενο της κλάσης. Χρησιμοποιείται για την εισαγωγή νέων χαρακτήρων γραμμής και ξεπλένει τη ροή.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Μεταβλητές C++

Μια μεταβλητή είναι το όνομα μιας θέσης μνήμης. Χρησιμοποιείται για την αποθήκευση δεδομένων. Η τιμή μπορεί να αλλάξει και επαναχρησιμοποιείται πολλές φορές. Είναι ένας τρόπος να αναπαραστήσετε τη θέση της μνήμης μέσω ενός συμβόλου για να αναγνωρίζεται εύκολα. Μια μεταβλητή μπορεί να έχει αλφάβητα, κάτω παύλες και ψηφία. Ένα όνομα μεταβλητής μπορεί να ξεκινά με ένα αλφάβητο και μόνο με υπογράμμιση. Δεν μπορεί να ξεκινήσει με ψηφίο.

Δεν επιτρέπονται κενά κενά μέσα στο όνομα της μεταβλητής.

Ένα όνομα μεταβλητής δεν πρέπει να είναι δεσμευμένη λέξη ή λέξη-κλειδί, π.χ. char, float κ.λπ.

Έγκυρα ονόματα μεταβλητών:

  • int a?
  • int _ab;
  • int a30;

Μη έγκυρα ονόματα μεταβλητών:

  • int 4;
  • intxy?
  • int διπλό?

Αναγνωριστικά C++

Ένα αναγνωριστικό C++ χρησιμοποιείται για τον προσδιορισμό μιας μεταβλητής, μιας συνάρτησης, μιας κλάσης, μιας μονάδας ή οποιουδήποτε άλλου στοιχείου που ορίζεται από το χρήστη. Ξεκινά με το Α έως το Ω ή από το α έως το z ή μια κάτω παύλα (_), η οποία ακολουθείται από μηδέν ή περισσότερα γράμματα και από 0 έως 9. Η C++ δεν επιτρέπει σημεία στίξης όπως @, $ και % εντός των αναγνωριστικών. Είναι μια γλώσσα προγραμματισμού με διάκριση πεζών-κεφαλαίων. Έτσι, το Workforce και το Workforce είναι δύο διαφορετικά αναγνωριστικά στη C++.

Τύποι δεδομένων C++

ΤύποςΛέξεις-κλειδιά
Χαρακτήραςαπανθρακώνω
Booleanbool
Πλωτό σημείοφλοτέρ
Διπλή κινητή υποδιαστολήδιπλό
Ακέραιος αριθμόςενθ
Ανευ αξίαςκενός
Ευρύς χαρακτήραςwchar_t
Τύπος Τυπικό πλάτος bit Τυπικό εύρος
απανθρακώνω1 byte-127 έως 127 ή 0 έως 255
ανυπόγραφο χαρ1 byte0 έως 255
υπογεγραμμένο χαρ1 byte-127 έως 127
wchar_t2 ή 4 byte1 πλατύς χαρακτήρας
ενθ4 byte-2147483648 έως 2147483647
ανυπόγραφο ενθ4 byte0 έως 4294967295
υπογεγραμμένο ενθ4 byte-2147483648 έως 2147483647
σύντομη εσωτ2 byte-32768 έως 32767
φλοτέρ4 byte
ανυπόγραφο σύντομο ενθ2 byte0 έως 65.535
υπογεγραμμένο σύντομο ενθ2 byte-32768 έως 32767
μακρύς ενθ8 byte-2.147.483.648 έως 2.147.483.647
υπογεγραμμένο μακρύ ενθ8 byteτο ίδιο με το long int
ανυπόγραφο μακρύ ενθ8 byte0 έως 4.294.967.295
μακρά μακρά ενθ8 byte-(2^63) έως (2^63)-1
ανυπόγραφο μακρύ μακρύ ενθ8 byte0 έως 18.446.744.073.709.551.615
διπλό8 byte
μακρύ διπλό12 byte

C++ Σταθερές/Κυριολεκτικά

Οι σταθερές αναφέρονται στις σταθερές τιμές που μπορεί να αλλάξει το πρόγραμμα και ονομάζονται κυριολεκτικά.

Οι σταθερές μπορούν να είναι οποιουδήποτε τύπου πρωτογενών δεδομένων και χωρίζονται σε Ακέραιους Αριθμούς, Χαρακτήρες, Αριθμούς Κυμαινόμενου Σημείου, Συμβολοσειρές και Τιμές Boolean.

Ακέραιοι κυριολεκτικά

Ένας ακέραιος κυριολεκτικός αριθμός είναι μια δεκαδική, οκταδική ή δεκαεξαδική σταθερά.

Ένα ακέραιο κυριολεκτικό έχει ένα επίθημα που είναι ένας συνδυασμός L και U, για μακρύ και ανυπόγραφο, αντίστοιχα. Το επίθημα μπορεί να είναι πεζό ή κεφαλαίο και μπορεί να είναι με οποιαδήποτε σειρά.

Για π.χ.: 212, 215u, 0xFeeL, 078, 032UU

Κυριολεκτικά κινητής υποδιαστολής

Ένα κυριολεκτικό κινητής υποδιαστολής έχει ένα ακέραιο μέρος, ένα κλασματικό μέρος, ένα δεκαδικό σημείο και ένα μέρος εκθέτη. Μπορείτε να αναπαραστήσετε τα κυριολεκτικά κινητής υποδιαστολής είτε σε δεκαδική είτε σε εκθετική μορφή.

Κατά την αναπαράσταση χρησιμοποιώντας την δεκαδική μορφή, πρέπει να συμπεριλάβετε την υποδιαστολή, τον εκθέτη ή και τα δύο. Ενώ σημαίνει ότι χρησιμοποιείτε την εκθετική μορφή, πρέπει να έχετε το κλασματικό μέρος, το ακέραιο μέρος ή και τα δύο. Ο υποσημασμένος εκθέτης εισάγεται από το E ή το e.

Boolean Literals

Υπάρχουν δύο κυριολεκτικά Boolean

  • Μια τιμή της αληθινής αντιπροσωπείας αληθινής.
  • Η τιμή του false αντιπροσωπεύει το false.

Κυριολεκτικά χαρακτήρων

Τα κυριολεκτικά των χαρακτήρων περικλείονται σε μονά εισαγωγικά. Εάν η κυριολεξία ξεκινά με L, είναι μια κυριολεξία με ευρείς χαρακτήρες και θα πρέπει να αποθηκευτεί σε μια μεταβλητή τύπου wchar_t. Διαφορετικά, είναι ένα στενό χαρακτήρα κυριολεκτικά και αποθηκεύεται σε μια απλή μεταβλητή τύπου char.

Ακολουθία διαφυγής Εννοια
\ χαρακτήρας
'«χαρακτήρας
χαρακτήρας
?? χαρακτήρας
προς τοΕιδοποίηση ή κουδούνι
σιBackspace
φάΤροφοδοσία φόρμας
Νέα γραμμή
Επιστροφή άμαξα
tΟριζόντια καρτέλα
vΚάθετη καρτέλα
oooΟκταδικός αριθμός ενός έως τριών ψηφίων
xhh . . .Δεκαεξαδικός αριθμός ενός ή περισσότερων ψηφίων

C++ Storage classes

Η κατηγορία αυτόματης αποθήκευσης

Είναι μια προεπιλεγμένη κλάση αποθήκευσης για όλες τις τοπικές μεταβλητές.

ΣΥΝΤΑΞΗ

|_+_|

Το μητρώο Storage Class

Χρησιμοποιούνται για τον ορισμό τοπικών μεταβλητών που είναι αποθηκευμένες σε έναν καταχωρητή αντί για RAM. Σημαίνει ότι η μεταβλητή έχει μέγιστο μέγεθος ίσο με το μέγεθος καταχωρητή και δεν μπορεί να εφαρμοστεί ο τελεστής «&» σε αυτήν.

ΣΥΝΤΑΞΗ

|_+_|

Η κλάση στατικής αποθήκευσης

Λέει στον μεταγλωττιστή να διατηρήσει την τοπική μεταβλητή σε ύπαρξη κατά τη διάρκεια του προγράμματος αντί να τη δημιουργήσει και να την καταστρέψει. Έτσι, η δημιουργία στατικών τοπικών μεταβλητών τους προσφέρει να διατηρούν τις τιμές τους μεταξύ των κλήσεων συναρτήσεων.

Η εξωτερική κατηγορία αποθήκευσης

Χρησιμοποιείται για να δώσει την αναφορά μιας καθολικής μεταβλητής που είναι ορατή σε κάθε αρχείο προγράμματος. Όταν χρησιμοποιείτε 'εξωτερικό' η μεταβλητή δεν μπορεί να αρχικοποιηθεί.

Η μεταβλητή κλάση αποθήκευσης

Ο μεταβλητός προσδιοριστής ισχύει για τα αντικείμενα κλάσης. Προσφέρει σε ένα μέλος ενός αντικειμένου να παρακάμψει τη συνάρτηση μέλους const. Δηλαδή, ένα μεταβλητό μέλος μπορεί να τροποποιηθεί από μια συνάρτηση μέλους const.

Τύποι τροποποιητών C++

Η C++ προσφέρει τους τύπους δεδομένων char, int και double για να έχουν τροποποιητές πριν από αυτούς. Ένας τροποποιητής χρησιμοποιείται για να αλλάξει την έννοια του βασικού τύπου, ώστε να ταιριάζει με μεγαλύτερη ακρίβεια στις ανάγκες διαφόρων καταστάσεων.

Οι τροποποιητές τύπων δεδομένων αναφέρονται παρακάτω—

  • υπογεγραμμένος
  • ανυπόγραφο
  • μακρύς
  • μικρός

Οι τροποποιητές signed, unsigned, long και short εφαρμόζονται σε ακέραιους τύπους βάσης. Επιπλέον, το signed και το unsigned εφαρμόζονται στο char και το long εφαρμόζεται στο double.

Οι τροποποιητές υπογεγραμμένοι και ανυπόγραφοι χρησιμοποιούνται ως προθέματα σε μακροσκελής ή σύντομους τροποποιητές.

Τύποι προκριματικών

    συνθ: Αντικείμενα του τύπου συνθ δεν μπορεί να αλλάξει από το πρόγραμμα κατά την εκτέλεση.πτητικός: Η επεξεργασία πτητικός λέει στον μεταγλωττιστή ότι η τιμή της μεταβλητής μπορεί να αλλάξει με τρόπους που δεν καθορίζονται ρητά από το πρόγραμμα.περιορίζω: Ένας δείκτης που πιστοποιήθηκε από περιορίζω είναι το μόνο μέσο με το οποίο μπορεί να προσπελαστεί το αντικείμενο στο οποίο δείχνει. Το C99 προσθέτει έναν νέο τύπο προσδιορισμού που ονομάζεται περιορισμός.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Χειριστές σε C++

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

  • Αριθμητικός τελεστής
  • Λογικός χειριστής
  • Bitwise Operator
  • Χειριστής ανάθεσης
  • Σχεσιακός Χειριστής
  • Διάφορος χειριστής

Αριθμητικός τελεστής

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

χειριστές Περιγραφή Σύνταξη
+Προσθέτει δύο τελεστέςα+β
*Πολλαπλασιάζει δύο τελεστέςα*β
Αφαιρεί δύο τελεστέςα-β
/Διαιρεί τον πρώτο τελεστή με τον δεύτεροα/β
%Επιστρέφει το υπόλοιπο όταν ο πρώτος τελεστής διαιρεθεί με τον δεύτεροα%β
++Αυξάνει την ακέραια τιμή κατά έναα++
Μειώνει την ακέραια τιμή κατά έναπρος το-

Λογικός τελεστής

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

χειριστές Περιγραφή Σύνταξη
Ή (||)Σωστό αν κάποιος από τους τελεστές είναι αληθής(Α || Β) είναι αληθές.
Και (&&)Σωστό αν και οι δύο τελεστές είναι αληθείςΤο (A && B) είναι ψευδές.
Δεν (!)Εάν μια συνθήκη είναι αληθής, τότε ο τελεστής Logical NOT θα κάνει false.!(Α && Β) είναι αλήθεια.

Χειριστής bitwise

Στη C++ οι τελεστές bitwise εκτελούν υπολογισμούς bitwise σε ακέραιους αριθμούς. Τελετής bitwise: Επιστρέφει 1 εάν και τα δύο bit είναι 1 άλλο 0. Παράδειγμα: a = 10 = 1010 (Δυαδικό) b = 4 = 0100 (Δυαδικό a & b = 1010 & 0100 = 0000 = 0 (Δεκαδικό) Bitwise ή τελεστής: Επιστρέφει 1 αν κάποιο από τα bit είναι 1 άλλο 0.

χειριστές Περιγραφή Σύνταξη
>>Δυαδική μετατόπιση προς τα δεξιά x>>x>>
<< Δυαδική αριστερή μετατόπισηΧ<<
^Δυαδικό XORx ^ y
&Δυαδικό ΚΑΙx & y
|Δυαδικό Ήx | Υ
~Δυαδικό ΟΧΙ~ x

Χειριστής ανάθεσης

Οι τελεστές εκχώρησης εκχωρούν τιμές στις μεταβλητές. a = 5 είναι ένας τελεστής εκχώρησης που ορίζει την τιμή 5 στα δεξιά στη μεταβλητή an στα αριστερά.

χειριστές Περιγραφή Σύνταξη
=Εκχώρηση τιμών της έκφρασης της δεξιάς πλευράς στον τελεστή της αριστερής πλευράς.α=β+γ
+=Προσθέστε τον τελεστή της δεξιάς πλευράς με τον τελεστή της αριστερής πλευράς και μετά αντιστοιχίστε στον αριστερό τελεστή.α+=β α=α+β
-=Αφαιρέστε τον τελεστή του δεξιού τελεστή από τον αριστερό τελεστή και μετά αντιστοιχίστε τον στον αριστερό τελεστή.α-=β α=α-β
/=Διαιρέστε τον τελεστή του αριστερού με τον τελεστή του δεξιού και μετά αντιστοιχίστε στον αριστερό τελεστή.α/=β α=α/β
%=Πάρτε το συντελεστή χρησιμοποιώντας τον αριστερό και τον δεξιό τελεστή και αντιστοιχίστε το αποτέλεσμα στον αριστερό τελεστή.a%=b a=a%b
*=Υπολογίστε την τιμή του εκθέτη χρησιμοποιώντας τελεστές και εκχωρήστε τιμή στον αριστερό τελεστή.α*=β α=α*β
&=Εκτελεί Bitwise AND στον τελεστή και εκχωρεί τιμή στον αριστερό τελεστή.α&=β α=α&β
|=Εκτελεί Bitwise OR στον τελεστή και εκχωρεί τιμή στον αριστερό τελεστή.α|=β α=α|β
^=Εκτελεί Bitwise OR στον τελεστή και εκχωρεί τιμή στον αριστερό τελεστή.a^=b a=a^b
>>=Εκτελέστε Bitwise Shift προς τα δεξιά στον τελεστή και εκχωρήστε τιμή στον αριστερό τελεστή.a>>=b a=a>>β
<<=Εκτελεί Bitwise left shift στον τελεστή και εκχωρεί τιμή στον αριστερό τελεστή.προς το<<= b a= a << b

Σχεσιακός τελεστής

Σχεσικοί τελεστές είναι οι τελεστές που χρησιμοποιούνται για τη σύγκριση δύο τιμών ή αντικειμένων.

χειριστές Περιγραφή Σύνταξη
>Μεγαλύτερος απόx > y
<Λιγότερο απόΧ
==Ισοςx == y
!=Όχι ίσαx != y
>=Μεγαλύτερο ή ίσο μεx >= y
<= Μικρότερο ή ίσο μεΧ<= y

Διάφοροι χειριστές

Χειριστής Περιγραφή
Κατάσταση? Χ: ΥΕάν η συνθήκη είναι αληθής, τότε επιστρέφει την τιμή του X διαφορετικά επιστρέφει την τιμή του Y.
,Προκαλεί την εκτέλεση μιας σειράς λειτουργιών. Η τιμή του κόμματος είναι η τιμή της τελευταίας έκφρασης της λίστας που χωρίζεται με κόμμα.
μέγεθος τουΕπιστρέφει το μέγεθος μιας μεταβλητής. Για παράδειγμα, sizeof(a), όπου το 'a' είναι ακέραιος και θα επιστρέψει 4.
*Είναι ένας δείκτης σε μια μεταβλητή. Για παράδειγμα *var; θα δείχνει σε μια μεταβλητή var.
ΕκμαγείοΜετατρέπει έναν τύπο δεδομένων σε έναν άλλο.
. (κουκκίδα) και -> (βέλος)Χρησιμοποιούνται για την αναφορά μεμονωμένων μελών τάξεων, δομών και συνδικάτων.
&Επιστρέφει τη διεύθυνση της μεταβλητής.

Βρόχοι C++

για βρόχο

Ο βρόχος C++ for χρησιμοποιείται για την επανάληψη ενός μέρους του προγράμματος πολλές φορές. Εάν ο αριθμός των επαναλήψεων είναι σταθερός, συνιστάται η χρήση βρόχου για βρόχο παρά ενώ ή do-while.

Ο βρόχος C++ for είναι ίδιος με το C/C#. Μπορούμε να αρχικοποιήσουμε μεταβλητές, να ελέγξουμε τη συνθήκη και να αυξήσουμε/μειώσουμε την τιμή.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Nested For Loop

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ενώ βρόχος

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

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ένθετο ενώ βρόχο

Στη C++, μπορείτε να χρησιμοποιήσετε έναν βρόχο while μέσα σε έναν άλλο βρόχο while. είναι γνωστός ως ένθετος βρόχος while. Ο ένθετος βρόχος while εκτελείται όταν ο εξωτερικός βρόχος εκτελείται μία φορά.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Βρόχος Do-while

Ο βρόχος C++ do-while χρησιμοποιείται για την επανάληψη ενός μέρους του προγράμματος πολλές φορές. Εάν ο αριθμός των επαναλήψεων δεν είναι σταθερός και πρέπει να εκτελέσετε τον βρόχο τουλάχιστον μία φορά, συνιστάται να χρησιμοποιήσετε έναν βρόχο do-while.

Ο βρόχος C++ do-while εκτελείται τουλάχιστον μία φορά επειδή η συνθήκη ελέγχεται μετά το σώμα του βρόχου.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ένθετος βρόχος Do-While

Στη C++, εάν χρησιμοποιείτε έναν βρόχο do-while μέσα σε έναν άλλο βρόχο do-while, είναι γνωστός ως ένθετος βρόχος do-while. Ο ένθετος βρόχος do-while εκτελείται πλήρως για κάθε εξωτερικό βρόχο do-while.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Δηλώσεις λήψης αποφάσεων

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

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

  • αν δήλωση
  • αν..άλλες δηλώσεις
  • ένθετες δηλώσεις if
  • αν-άλλο-αν σκάλα
  • Δηλώσεις μετάβασης:
    • Διακοπή
    • να συνεχίσει
    • παω σε
    • ΕΠΙΣΤΡΟΦΗ

αν δήλωση

αν η δήλωση είναι μια απλή δήλωση λήψης αποφάσεων. Χρησιμοποιείται για να αποφασίσει εάν το μπλοκ εντολών θα εκτελεστεί ή όχι. Εάν η συνθήκη είναι αληθής τότε εκτελείται ένα μπλοκ εντολής διαφορετικά όχι.

ΣΥΝΤΑΞΗ

|_+_|

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

αν αλλιώς δήλωση

Η πρόταση if λέει ότι εάν μια συνθήκη είναι αληθής θα εκτελέσει το μπλοκ των εντολών και αν η συνθήκη είναι false δεν θα εκτελεστεί. Μπορείτε να χρησιμοποιήσετε την εντολή else με την εντολή if για να εκτελέσετε ένα μπλοκ κώδικα όταν η συνθήκη είναι false.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ένθετες δηλώσεις if

Ένα ένθετο if στη C++ είναι μια εντολή if που στοχεύει μια άλλη εντολή if. Οι ένθετες εντολές if σημαίνουν ότι μια πρόταση if μέσα σε μια άλλη πρόταση if. Ναι, τόσο η C όσο και η C++ μας προσφέρουν ένθετες εντολές if εντός των εντολών if, δηλαδή, μπορείτε να τοποθετήσετε μια εντολή if μέσα σε μια άλλη πρόταση if.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

αν-άλλο-αν σκάλα

Ο χρήστης μπορεί να αποφασίσει ανάμεσα σε διάφορες επιλογές. Οι εντολές if εκτελούνται από πάνω προς τα κάτω. Μόλις οι συνθήκες ελέγχουν το if is true, τότε η πρόταση που σχετίζεται με αυτό εκτελείται και η υπόλοιπη κλίμακα-εάν τερματίζεται. Εάν οι συνθήκες δεν ισχύουν, τότε θα εκτελεστεί η τελευταία και τελική δήλωση.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Δηλώσεις μετάβασης

Διακοπή

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

ΣΥΝΤΑΞΗ
Διακοπή;

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Να συνεχίσει

Η πρόταση συνέχειας είναι το αντίθετο της πρότασης break. Αντί να τερματίσει τον βρόχο, αναγκάζει την επόμενη επανάληψη του βρόχου.

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

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Παω σε

Η πρόταση goto στη C++ αναφέρεται σε μια δήλωση άνευ όρων άλματος που χρησιμοποιείται για μετάβαση από το ένα σημείο στο άλλο μέσα σε μια συνάρτηση.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

ΕΠΙΣΤΡΟΦΗ

Η επιστροφή στη C++ επιστρέφει τη ροή της εκτέλεσης στη συνάρτηση. Αυτή η δήλωση δεν χρειάζεται δηλώσεις υπό όρους. Μόλις εκτελεστεί η πρόταση, η ροή του προγράμματος σταματά αμέσως και επιστρέφει το στοιχείο ελέγχου από το σημείο που κλήθηκε. Η δήλωση επιστροφής μπορεί να επιστρέψει ή να μην επιστρέψει τίποτα για μια void συνάρτηση, αλλά μια τιμή επιστροφής πρέπει να επιστραφεί για μια non-void συνάρτηση.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Λειτουργίες C++

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

Το πρόγραμμα C++ έχει τουλάχιστον μία συνάρτηση, τη συνάρτηση main().

Καθορισμός συνάρτησης

Ένας ορισμός συνάρτησης στη C++ αποτελείται από μια κεφαλίδα συνάρτησης και ένα σώμα.

    Τύπος επιστροφής− Μπορεί να επιστρέψει μια τιμή. Ορισμένες συναρτήσεις εκτελούν τις λειτουργίες χωρίς να επιστρέφουν μια τιμή. Σε αυτό, το return_type είναι η λέξη-κλειδί κενός .Όνομα συνάρτησης− Είναι το πραγματικό όνομα της συνάρτησης. Το όνομα της συνάρτησης και η λίστα μαζί αποτελούν την υπογραφή της συνάρτησης.Παράμετροι− Μια παράμετρος είναι ακριβώς όπως ένα σύμβολο κράτησης θέσης. Όταν καλείται μια συνάρτηση, μεταβιβάζετε την τιμή στην παράμετρο. Αυτή η τιμή είναι γνωστή ως πραγματική παράμετρος ή όρισμα. Η λίστα παραμέτρων αναφέρεται στη σειρά, τον τύπο και έναν αριθμό παραμέτρων μιας συνάρτησης.Σώμα Λειτουργίας− Το σώμα περιέχει μια συλλογή από προτάσεις που ορίζουν τι κάνει η συνάρτηση.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Δήλωση συνάρτησης

Στη C++, οι συναρτήσεις πρέπει να δηλωθούν πριν χρησιμοποιηθούν. Μπορείτε να δηλώσετε μια συνάρτηση παρέχοντας την επιστρεφόμενη τιμή, το όνομα και τους τύπους για τα ορίσματά της. Οι όροι των ορισμάτων είναι προαιρετικοί. Ένας ορισμός συνάρτησης μετράει ως δήλωση συνάρτησης.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Κλήση συνάρτησης

Ενώ δημιουργείτε μια συνάρτηση C++, ορίζετε τι πρέπει να κάνει η συνάρτηση. Για να χρησιμοποιήσετε μια συνάρτηση, πρέπει να καλέσετε ή να την καλέσετε.

Όταν το πρόγραμμα καλεί μια συνάρτηση, ο έλεγχος προγράμματος μεταφέρεται στην καλούμενη συνάρτηση. Μια καλούμενη συνάρτηση εκτελεί μια καθορισμένη εργασία και όταν εκτελείται η δήλωση επιστροφής της ή όταν επιτευχθεί η αγκύλη κλεισίματος στο τέλος της συνάρτησης, επιστρέφει τον έλεγχο προγράμματος στο κύριο πρόγραμμα.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Επιχειρήματα συνάρτησης

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

    Call by Value: Αντιγράφει την πραγματική τιμή του ορίσματος στην επίσημη παράμετρο της συνάρτησης. Οι αλλαγές που έγιναν στην παράμετρο μέσα στη συνάρτηση δεν επηρεάζουν το όρισμα.Κλήση με δείκτη: Αντιγράφει τη διεύθυνση του ορίσματος στην επίσημη παράμετρο. Μέσα σε αυτήν τη συνάρτηση, η διεύθυνση χρησιμοποιείται για πρόσβαση στο όρισμα που χρησιμοποιείται στην κλήση. Σημαίνει ότι οι αλλαγές που γίνονται στην παράμετρο επηρεάζουν το όρισμα.Κλήση με αναφορά: Αντιγράφει την αναφορά ενός ορίσματος στην επίσημη παράμετρο. Μέσα σε αυτήν τη συνάρτηση, η αναφορά χρησιμοποιείται για πρόσβαση στο όρισμα που χρησιμοποιείται στην κλήση. Αυτό σημαίνει ότι οι αλλαγές που γίνονται στην παράμετρο επηρεάζουν το όρισμα.

Αριθμοί C++

Συνήθως, όταν εργαζόμαστε με Numbers, χρησιμοποιούμε πρωτόγονους τύπους δεδομένων όπως int, short, long, float, double, κ.λπ. Ο αριθμός των τύπων δεδομένων, οι πιθανές τιμές τους και τα εύρη αριθμών έχουν εξηγηθεί κατά τη συζήτηση για τους τύπους δεδομένων C++.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Μαθηματικοί τελεστές σε C++

ΝΑΙ ΟΧΙ Λειτουργίες Σκοπός
ένας διπλή αμαρτία (διπλή)Παίρνει γωνία (ως διπλή) και επιστρέφει το ημίτονο.
δύο διπλό cos(διπλό);Παίρνει μια γωνία (ως διπλή) και επιστρέφει το συνημίτονο.
3 διπλό μαύρισμα (διπλό)Παίρνει γωνία (ως διπλή) και επιστρέφει την εφαπτομένη.
4 διπλή δύναμη (διπλό, διπλό)Το πρώτο είναι ένας αριθμός που θέλετε να αυξήσετε και το δεύτερο είναι η δύναμη που θέλετε να τον αυξήσετε
5 διπλό αρχείο καταγραφής (διπλό);Παίρνει έναν αριθμό και επιστρέφει το φυσικό αρχείο καταγραφής αυτού του αριθμού.
6 double hypot(double, double);Εάν περάσετε αυτό το μήκος δύο πλευρών ενός ορθογωνίου τριγώνου, θα σας επιστρέψει το μήκος της υποτείνουσας.
7 διπλό sqrt (διπλό);Περνάς στη συνάρτηση έναν αριθμό και σου δίνει την τετραγωνική ρίζα.
8 int abs(int);Επιστρέφει την απόλυτη τιμή ενός ακέραιου που του μεταβιβάζεται.
9 διπλός όροφος (διπλό);Βρίσκει τον ακέραιο που είναι μικρότερος ή ίσος με το όρισμα που του διαβιβάστηκε.
10 διπλό fabs (διπλό);Επιστρέφει την απόλυτη τιμή οποιουδήποτε δεκαδικού αριθμού που του έχει διαβιβαστεί.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Πίνακες C++

Ένας πίνακας στη C++ είναι μια συλλογή στοιχείων που είναι αποθηκευμένα σε συνεχόμενες θέσεις μνήμης και τα στοιχεία μπορούν να προσπελαστούν τυχαία χρησιμοποιώντας τους δείκτες ενός πίνακα. Χρησιμοποιούνται για την αποθήκευση παρόμοιων στοιχείων καθώς ο τύπος δεδομένων πρέπει να είναι ίδιος για όλα τα στοιχεία. Μπορούν να αποθηκεύσουν πρωτόγονους τύπους δεδομένων όπως char, int, float, double, κ.λπ. Για να προσθέσετε σε αυτό, ένας πίνακας στη C++ μπορεί να αποθηκεύσει παραγόμενους τύπους δεδομένων όπως δομές, δείκτες κ.λπ. Παρακάτω δίνεται η γραφική αναπαράσταση ενός πίνακα .

Δήλωση πίνακα

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Εδώ,

  • int – ένας τύπος στοιχείου προς αποθήκευση
  • y – το όνομα του πίνακα
  • 4 – το μέγεθος του πίνακα

Πρόσβαση σε στοιχεία σε πίνακα

Κάθε στοιχείο σε έναν πίνακα συνδέεται με έναν αριθμό. Ο αριθμός ονομάζεται δείκτης πίνακα. Μπορείτε να έχετε πρόσβαση στα στοιχεία ενός πίνακα χρησιμοποιώντας τους δείκτες.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Ακολουθούν μερικές σημαντικές έννοιες των πινάκων C++

    Πολυδιάστατοι πίνακες: Ένας δισδιάστατος πίνακας είναι η απλούστερη μορφή του πολυδιάστατου πίνακα.Δείκτης σε πίνακα: Θα δημιουργήσετε έναν δείκτη στο πρώτο στοιχείο ενός πίνακα αναφέροντας το όνομα του πίνακα χωρίς το ευρετήριο.Πέρασμα πινάκων σε συναρτήσεις: Θα μεταβιβάσετε στη συνάρτηση έναν δείκτη σε έναν πίνακα καθορίζοντας το όνομα του πίνακα χωρίς ευρετήριο.Επιστροφή πίνακα από συναρτήσεις: Η C++ επιτρέπει στη συνάρτηση να επιστρέψει έναν πίνακα.

Συμβολοσειρές C++

Είναι μια συλλογή χαρακτήρων. Υπάρχουν δύο τύποι συμβολοσειρών που χρησιμοποιούνται στη γλώσσα προγραμματισμού C++:

  • Συμβολοσειρές που είναι αντικείμενα κλάσης συμβολοσειρών
  • Γ-χορδές

Η τάξη εγχόρδων

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Γ χορδές

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Λίγες συναρτήσεις που χειρίζονται μηδενικές συμβολοσειρές

    strcpy(s1, s2);

Αντιγράφει τη συμβολοσειρά s2 στη συμβολοσειρά s1.

    strcat(s1, s2);

Συνδέει τη συμβολοσειρά s2 στο άκρο της συμβολοσειράς s1.

    strstr(s1, s2);

Επιστρέφει έναν δείκτη στην εμφάνιση της συμβολοσειράς s2 στη συμβολοσειρά s1.

    strlen(s1);

Επιστρέφει το μήκος της συμβολοσειράς s1.

    strcmp(s1, s2);

Επιστρέφει 0 εάν τα s1 και s2 είναι ίδια. μικρότερο από 0 εάν s1s2.

    strchr(s1, ch);

Επιστρέφει τον δείκτη στην εμφάνιση του χαρακτήρα ch στη συμβολοσειρά s1.

Δείκτες C++

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

ΣΥΝΤΑΞΗ

|_+_|

Πώς να χρησιμοποιήσετε έναν δείκτη;

  • Αρχικά, ορίστε μια μεταβλητή δείκτη
  • Τώρα αντιστοιχίστε τη διεύθυνση της μεταβλητής σε έναν δείκτη χρησιμοποιώντας το (&) που επιστρέφει τη διεύθυνση αυτής της μεταβλητής.
  • Πρόσβαση στις τιμές που είναι αποθηκευμένες στη διεύθυνση χρησιμοποιώντας το (*) που επιστρέφει την τιμή της μεταβλητής που βρίσκεται στη διεύθυνση που καθορίζεται από τον τελεστή της.

Λίγες έννοιες δεικτών

    Μηδενικοί δείκτες: Είναι μια σταθερά με τιμή μηδέν που ορίζεται σε διάφορες τυπικές βιβλιοθήκες.Αριθμητική δείκτη: Τέσσερις αριθμητικοί τελεστές μπορούν να χρησιμοποιηθούν σε δείκτες: ++, –, +, –Δείκτες vs Πίνακες: Υπάρχει στενή σύνδεση μεταξύ δεικτών και πινάκων.Συστοιχία δεικτών: Μπορείτε να ορίσετε πίνακες για να κρατούν πολλούς δείκτες.Δείκτης σε δείκτη: Η C++ σάς προσφέρει να έχετε έναν δείκτη σε έναν δείκτη και ούτω καθεξής.Μεταβίβαση δεικτών σε συναρτήσεις: Η μετάδοση μέσω αναφοράς ή μέσω διεύθυνσης καθιστά δυνατή την αλλαγή της δεδομένης δήλωσης στη συνάρτηση κλήσης από την καλούμενη συνάρτηση.Δείκτης επιστροφής από τις Λειτουργίες: Η C++ προσφέρει μια συνάρτηση για την επιστροφή ενός δείκτη σε μια τοπική μεταβλητή, μια στατική μεταβλητή και επίσης δυναμικά εκχωρημένη μνήμη.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Αναφορές C++

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

C++ Ημερομηνία και ώρα

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

Υπάρχουν τέσσερις τύποι που σχετίζονται με το χρόνο: clock_t, time_t, size_t και tm. Οι τύποι – clock_t, size_t και time_t είναι ικανοί να αναπαριστούν την ώρα και την ημερομηνία του συστήματος ως κάποιο ακέραιο.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Μερικές σημαντικές λειτουργίες

    time_t time(time_t *time);

Επιστρέφει την τρέχουσα ημερολογιακή ώρα σε μερικά δευτερόλεπτα που έχουν περάσει από την 1η Ιανουαρίου 1970. Εάν το σύστημα δεν έχει χρόνο, τότε επιστρέφεται το 0,1.

    char *ctime(const time_t *time);

Επιστρέφει έναν δείκτη σε μια συμβολοσειρά της φόρμας ημέρα μήνα έτος ώρες: λεπτά: δευτερόλεπτα.

    struct tm *localtime(const time_t *time);

Επιστρέφει έναν δείκτη στο tm δομή που αντιπροσωπεύει την τοπική ώρα.

    clock_t clock(void);

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

    char * asctime ( const struct tm * time );

Επιστρέφει έναν δείκτη στη συμβολοσειρά που περιέχει τις πληροφορίες που είναι αποθηκευμένες σε μια δομή που υποδεικνύεται από το χρόνο που μετατρέπεται στη μορφή: ημέρα μήνα ημερομηνία ώρες: λεπτά: δευτερόλεπτα

    struct tm *gmtime(const time_t *time);

Επιστρέφει έναν δείκτη στην ώρα με τη μορφή δομής tm.

    time_t mktime(struct tm *time);

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

    διπλός χρόνος διαφοράς (time_t time2, time_t time1);

Υπολογίζει τη διαφορά σε δευτερόλεπτα μεταξύ του χρόνου1 και του χρόνου2.

    size_t strftime();

Μπορεί να χρησιμοποιηθεί για τη μορφοποίηση ημερομηνίας και ώρας σε συγκεκριμένη μορφή.

Δομές δεδομένων C++

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

Καθορισμός Δομής

Για να ορίσετε μια δομή, θα πρέπει να χρησιμοποιήσετε τη δήλωση struct. Η δήλωση struct ορίζει έναν τύπο δεδομένων, με περισσότερα από ένα μέλη, για το πρόγραμμα.

|_+_|

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

Πρόσβαση σε μέλη της δομής

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

Οι δομές ως επιχειρήματα συνάρτησης

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Κλάσεις και αντικείμενα C++

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

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

Δημιουργήστε μια τάξη

Εάν θέλετε να δημιουργήσετε μια τάξη, πρέπει να χρησιμοποιήσετε το τάξη λέξη-κλειδί:

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Δημιουργήστε ένα αντικείμενο

Στη C++, ένα αντικείμενο δημιουργείται από μια κλάση.

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Λίγες έννοιες αναλυτικά

    Λειτουργίες μέλους τάξης: Μια συνάρτηση μέλους είναι μια συνάρτηση που έχει το πρωτότυπό της εντός του ορισμού κλάσης όπως και κάθε άλλη μεταβλητή.Τροποποιητές πρόσβασης τάξης: Ένα μέλος κλάσης μπορεί να οριστεί ως ιδιωτικό, δημόσιο, προστατευμένο. Από προεπιλογή είναι ιδιωτικό.Οικοδόμος: Ένας κατασκευαστής είναι μια συνάρτηση μιας κλάσης που καλείται όταν δημιουργείται ένα νέο αντικείμενο.Αντιτορπιλικό: Ένας καταστροφέας είναι μια συνάρτηση που καλείται όταν διαγραφεί το δημιουργημένο αντικείμενο.Κατασκευαστής αντιγράφων:Είναι ένας κατασκευαστής που δημιουργεί ένα αντικείμενο αρχικοποιώντας το με ένα αντικείμενο της ίδιας κλάσης, το οποίο έχει δημιουργηθεί προηγουμένως.Λειτουργίες φίλου: Παρέχει πλήρη πρόσβαση σε ιδιωτικά και προστατευμένα μέλη μιας τάξης.Ενσωματωμένες Λειτουργίες: Ο μεταγλωττιστής επεκτείνει τον κώδικα στο σώμα της συνάρτησης αντί για μια κλήση στη συνάρτηση.αυτό το δείκτη: Κάθε αντικείμενο έχει έναν ειδικό δείκτη Αυτό που δείχνει προς το ίδιο το αντικείμενο.Στατικά Μέλη μιας Τάξης: Τόσο τα μέλη δεδομένων όσο και τα μέλη συνάρτησης μιας κλάσης μπορούν να δηλωθούν ως στατικά.

C++ Κληρονομικότητα

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

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

Είδη Κληρονομικότητας

    Ενιαία κληρονομιάείναι ο τύπος κληρονομικότητας στον οποίο η παραγόμενη κλάση κληρονομείται μόνο από μία βασική κλάση.

Το 'A' είναι η βασική κλάση,

Το «B» είναι μια παραγόμενη κλάση.

cplusplus
    Πολυεπίπεδη κληρονομικότηταείναι μια διαδικασία εξαγωγής μιας κλάσης από μια άλλη παραγόμενη κλάση. Η κλάση C κληρονομεί τις ιδιότητες της κλάσης Β και η κλάση Β κληρονομεί τις ιδιότητες της κλάσης Β. Η Α είναι η μητρική κλάση της Β και η κατηγορία Β είναι η μητρική κλάση της Γ.
img 617dd1cc84e68
    Πολλαπλή κληρονομιάΜια παραγόμενη κλάση δημιουργείται από μία κλάση βάσης ή περισσότερες. Η κλάση C κληρονομεί τις ιδιότητες και τη συμπεριφορά της κλάσης Β και της κλάσης Α. Έτσι, εδώ η κλάση Α και η κλάση Β είναι οι γονικές κλάσεις για την κλάση C.
img 617dd1ccd67cc
  • Σε κληρονομιά πολλαπλών διαδρομών, μια παραγόμενη κλάση δημιουργείται από μια άλλη παραγόμενη κλάση και την ίδια βασική κλάση μιας άλλης παραγόμενης κλάσης. Αυτή η κληρονομιά δεν υποστηρίζεται από . ΚΑΘΑΡΑ Γλώσσες όπως C#, F# κ.λπ.

Η κλάση D κληρονομεί τις ιδιότητες και τη συμπεριφορά της κλάσης C και της κλάσης Β καθώς και της κλάσης Α. Η κλάση C και η κλάση Β κληρονομεί την κλάση A. Η κλάση Α είναι η μητρική για την Κλάση Β και την Κλάση Γ και την Κλάση D.

img 617dd1cd9230a
    Υβριδική κληρονομικότηταείναι ένας συνδυασμός περισσότερων της μιας κληρονομιών. Ως εκ τούτου, μπορεί να είναι ένας συνδυασμός κληρονομικότητας πολλαπλών επιπέδων και κληρονομικότητας πολλαπλών επιπέδων και κληρονομικότητας πολλαπλών επιπέδων και κληρονομικότητας πολλαπλών επιπέδων και κληρονομικότητας πολλαπλών επιπέδων.
img 617dd1cdf0c4e

Τροποποιητές πρόσβασης C++

Οι τροποποιητές πρόσβασης χρησιμοποιούνται για την υλοποίηση μιας βασικής πτυχής του Αντικειμενοστρεφούς Προγραμματισμού που είναι γνωστή ως Απόκρυψη Δεδομένων. Οι τροποποιητές πρόσβασης σε μια κλάση χρησιμοποιούνται για την εκχώρηση πρόσβασης στα μέλη της τάξης. Θέτει ορισμένους περιορισμούς στα μέλη της τάξης ώστε να μην έχουν άμεση πρόσβαση από τις εξωτερικές λειτουργίες.

Υπάρχουν τρεις τύποι τροποποιητών πρόσβασης που είναι διαθέσιμοι στη C++:

  • Δημόσιο
  • Ιδιωτικός
  • Προστατεύεται

Ας τα συζητήσουμε αναλυτικά:

Δημόσιο

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ιδιωτικός

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Προστατεύεται

Ένας τροποποιητής προστατευμένης πρόσβασης είναι ο ίδιος με έναν τροποποιητή ιδιωτικής πρόσβασης, καθώς δεν είναι δυνατή η πρόσβαση σε αυτόν εκτός της κλάσης του, εκτός εάν, με τη βοήθεια μιας κλάσης φίλου, η διαφορά είναι ότι τα μέλη κλάσης που δηλώνονται ως Προστατευμένα μπορούν να προσπελαστούν από οποιαδήποτε παράγωγη κλάση αυτής της τάξης επίσης.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

C++ Υπερφόρτωση

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

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

Λειτουργία Υπερφόρτωση

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Πολυμορφισμός C++

Υπερφόρτωση χειριστή

Μπορείτε να κάνετε τους τελεστές να λειτουργούν για κλάσεις που ορίζονται από τον χρήστη. Αυτό σημαίνει ότι η C++ μπορεί να παρέχει στους χειριστές μια ειδική σημασία για έναν τύπο δεδομένων. Αυτό είναι γνωστό ως υπερφόρτωση χειριστή.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Είναι μια σημαντική έννοια του αντικειμενοστρεφούς προγραμματισμού. Σημαίνει περισσότερες από μία μορφές. Δηλαδή, η ίδια οντότητα συμπεριφέρεται διαφορετικά σε διαφορετικά σενάρια.

Παράκαμψη συνάρτησης

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

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Εικονικές λειτουργίες C++

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

Η χρήση εικονικών συναρτήσεων στη βασική κλάση διασφαλίζει ότι η συνάρτηση μπορεί να παρακαμφθεί σε αυτές τις περιπτώσεις. Έτσι, οι εικονικές συναρτήσεις εμπίπτουν στην παράκαμψη συναρτήσεων.

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

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Αφαίρεση δεδομένων C++

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

Αφαίρεση με χρήση τάξεων

Μπορείτε να εφαρμόσετε Abstraction σε C++ με τη βοήθεια κλάσεων. Η κλάση σάς βοηθά να ομαδοποιήσετε τα μέλη δεδομένων και τις συναρτήσεις μελών χρησιμοποιώντας διαθέσιμους προσδιοριστές πρόσβασης. Μια κλάση μπορεί να αποφασίσει ποιο μέλος δεδομένων θα είναι ορατό στον έξω κόσμο και ποιο όχι.

Αφαίρεση με χρήση προσδιοριστών πρόσβασης

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

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ενθυλάκωση δεδομένων C++

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

Για την υλοποίηση αυτού

  • Κάντε όλα τα μέλη δεδομένων ιδιωτικά.
  • Δημιουργήστε μια δημόσια συνάρτηση ρυθμιστή και λήψης για κάθε μέλος δεδομένων με τέτοιο τρόπο ώστε η συνάρτηση set να ορίζει την τιμή του μέλους δεδομένων και η συνάρτηση get να παίρνει την τιμή του μέλους δεδομένων

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

C++ Abstract Classes

Η κλάση C++ γίνεται αφηρημένη δηλώνοντας μια από τις συναρτήσεις της ως ζωτικής>καθαρής εικονικής συνάρτησης. Μια καθαρή εικονική συνάρτηση αναφέρεται τοποθετώντας το = 0 στη δήλωσή της. Οι παραγόμενες κλάσεις πρέπει να παρέχουν την εφαρμογή τους.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Αρχεία και ροές C++

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

Άνοιγμα αρχείου

Ένα αρχείο θα πρέπει να ανοίξει για να μπορέσετε να το διαβάσετε ή να το γράψετε. Είτε το αντικείμενο fstream είτε το αντικείμενο offstream μπορεί να χρησιμοποιηθεί για το άνοιγμα ενός αρχείου για εγγραφή. Ένα αντικείμενο ifstream χρησιμοποιείται για το άνοιγμα του αρχείου μόνο για λόγους ανάγνωσης.

ναι όχι Σημαία λειτουργίας Περιγραφή
ένας ιος::ατ Όλη η έξοδος στο αρχείο θα προστεθεί στο τέλος.
δύο ios::app Ανοίγει ένα αρχείο για έξοδο και μετακινεί το στοιχείο ελέγχου ανάγνωσης ή εγγραφής στο τέλος του αρχείου.
3 ios::trunc Εάν το αρχείο υπάρχει ήδη, το περιεχόμενο θα περικοπεί πριν ανοίξει το αρχείο.
4 ios::out Ανοίγει ένα αρχείο για εγγραφή.
5 ios::in Ανοίγει ένα αρχείο για ανάγνωση.

ΣΥΝΤΑΞΗ

|_+_|

Κλείσιμο αρχείου

Όταν ένα πρόγραμμα C++ τερματίζεται, ξεπλένει αυτόματα όλες τις ροές, απελευθερώνει όλη την εκχωρημένη μνήμη και κλείνει όλα τα αρχεία που ανοίγουν.

ΣΥΝΤΑΞΗ

|_+_|

Ανάγνωση από ένα αρχείο

Μπορείτε να διαβάσετε πληροφορίες από ένα αρχείο στο πρόγραμμά σας χρησιμοποιώντας τον τελεστή εξαγωγής ροής (>>). Η μόνη διαφορά είναι ότι χρησιμοποιείτε ένα αντικείμενο fstream ή ifstream αντί για το αντικείμενο cin.

ΔΙΑΒΑΣΤΕ ΚΑΙ ΓΡΑΨΤΕ ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Δείκτες θέσης αρχείου

Τόσο το ostream όσο και το istream παρέχουν λειτουργίες μέλους για την επανατοποθέτηση του δείκτη θέσης αρχείου. Αυτές οι συναρτήσεις μέλους είναι seekp για ostream και seekg για istream. Το επιχείρημα seekp και seekg είναι ένας μακρύς ακέραιος αριθμός. Ένα δεύτερο όρισμα μπορεί να αναφερθεί για να υποδείξει την κατεύθυνση αναζήτησης.

Χειρισμός εξαιρέσεων C++

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

Στην C++, μια εξαίρεση είναι ένα συμβάν ή ένα αντικείμενο που ρίχνεται κατά το χρόνο εκτέλεσης. Όλες οι εξαιρέσεις προέρχονται από την κλάση std::exception. Εάν δεν χειριστούμε την εξαίρεση, εκτυπώνει το μήνυμα εξαίρεσης και τερματίζει το πρόγραμμα.

Εξαιρέσεις Περιγραφές
std::bad_exception Χρησιμοποιείται για τον χειρισμό απροσδόκητων εξαιρέσεων.
std::logic_failure Μπορεί να εντοπιστεί διαβάζοντας έναν κωδικό.
std::bad_typeid Γενικά πετιέται από typeid.
std::runtime_error Δεν μπορεί να εντοπιστεί διαβάζοντας έναν κωδικό.
std::εξαίρεση Είναι μια εξαίρεση και γονική κλάση όλων των τυπικών εξαιρέσεων C++.
std::bad_cast Γενικά εκτοξεύεται από το dynamic_cast.
std::bad_alloc Γενικά πετιέται από καινούργιο.

Ο χειρισμός εξαιρέσεων της C++ βασίζεται σε τρεις λέξεις-κλειδιά: προσπάθησε να πιάσεις, και βολή .

    δοκιμάστε− Το μπλοκ try προσδιορίζει ένα μπλοκ κώδικα για το οποίο θα ενεργοποιηθεί μια συγκεκριμένη εξαίρεση. Ένα ή περισσότερα catch blocks το ακολουθούν.σύλληψη− Ένα πρόγραμμα πιάνει μια εξαίρεση μέσω ενός χειριστή εξαιρέσεων. Η λέξη-κλειδί catch δείχνει την σύλληψη μιας εξαίρεσης.βολή− Ένα πρόγραμμα δημιουργεί την εξαίρεση όταν εμφανίζεται ένα πρόβλημα. Αυτό γίνεται χρησιμοποιώντας μια λέξη-κλειδί ρίψης.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Δυναμική μνήμη C++

Η μνήμη χωρίζεται σε δύο μέρη −

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

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

  • Δημιουργία δυναμικού χώρου στη μνήμη
  • Αποθήκευση της διεύθυνσής του σε δείκτη

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

νέα και διαγραφή χειριστή

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

ΣΥΝΤΑΞΗ

|_+_|

Όταν αισθάνεστε μια μεταβλητή που δεν εκχωρείται δυναμικά και δεν απαιτείται πλέον, μπορείτε να ελευθερώσετε τη μνήμη στο δωρεάν χώρο αποθήκευσης με το 'διαγράφω' χειριστής.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Δυναμική κατανομή μνήμης πινάκων

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

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

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Ασυνεχείς Χώροι Ονομάτων

Ένας χώρος ονομάτων ορίζεται σε πολλά μέρη και ένας χώρος ονομάτων αποτελείται από το άθροισμα των καθορισμένων μερών του. Τα ξεχωριστά μέρη του χώρου ονομάτων κατανέμονται σε πολλά αρχεία.

ΣΥΝΤΑΞΗ

|_+_|

Ένθετοι χώροι ονομάτων

Εδώ μπορείτε να ορίσετε έναν χώρο ονομάτων μέσα σε έναν άλλο χώρο ονομάτων

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Πρότυπα C++

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

Αυτές οι έννοιες χρησιμοποιούνται με δύο τρόπους:

  • Πρότυπα συναρτήσεων
  • Πρότυπα τάξης

Πρότυπα συναρτήσεων

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

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

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

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Πρότυπα τάξης

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

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

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Προεπεξεργαστές C++

Οι οδηγίες προεπεξεργαστή είναι οι γραμμές που περιλαμβάνονται στον κώδικα των προγραμμάτων που προηγούνται από ένα σύμβολο κατακερματισμού (#). Αυτές οι γραμμές δεν είναι προγραμματισμένες δηλώσεις αλλά οδηγίες για τον προεπεξεργαστή. Ο προεπεξεργαστής εξετάζει τον κώδικα πριν ξεκινήσει η μεταγλώττιση του κώδικα και επιλύει όλες τις οδηγίες προτού οι κανονικές δηλώσεις δημιουργήσουν οποιονδήποτε κώδικα.

Οι οδηγίες προεπεξεργαστή εκτείνονται σε μία μόνο γραμμή κώδικα. Μόλις βρεθεί ο χαρακτήρας νέας γραμμής, η οδηγία προεπεξεργαστή τερματίζεται.

Υπάρχουν 4 κύριοι τύποι οδηγιών προεπεξεργαστή:

  • μακροεντολή
  • Συμπερίληψη αρχείου
  • Σύνταξη υπό όρους
  • Άλλες οδηγίες

μακροεντολή

Οι μακροεντολές είναι ένα κομμάτι κώδικα στο οποίο δίνεται κάποιο όνομα. Κάθε φορά που ο μεταγλωττιστής συναντά αυτό το όνομα, αντικαθιστά το όνομα με το πραγματικό κομμάτι κώδικα. Η οδηγία «#define» χρησιμοποιείται για τον ορισμό μιας μακροεντολής.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Προκαθορισμένες μακροεντολές C++

    __ΓΡΑΜΜΗ__

Περιέχει τον αριθμό γραμμής του προγράμματος όταν το πρόγραμμα μεταγλωττίζεται.

    __ΑΡΧΕΙΟ__

Περιέχει το τρέχον όνομα αρχείου του προγράμματος κατά τη μεταγλώττιση.

    __ΗΜΕΡΟΜΗΝΙΑ__

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

    __ΧΡΟΝΟΣ__

Περιέχει μια συμβολοσειρά ώρας:λεπτού: δευτερολέπτου που είναι η ώρα κατά την οποία έγινε μεταγλώττιση του προγράμματος.

Συμπερίληψη αρχείου

Αυτή η οδηγία προεπεξεργαστή λέει στον μεταγλωττιστή να συμπεριλάβει ένα αρχείο στο πρόγραμμα. Υπάρχουν δύο τύποι αρχείων που διατηρούνται από τον χρήστη στο πρόγραμμα:

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

Σύνταξη υπό όρους

Βοηθά να μεταγλωττίσετε ένα συγκεκριμένο τμήμα του προγράμματος ή να παραλείψετε τη μεταγλώττιση κάποιου συγκεκριμένου τμήματος του προγράμματος με βάση ορισμένες συνθήκες.

ΣΥΝΤΑΞΗ

|_+_|

Άλλες οδηγίες

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

    Οδηγία #undef: Η οδηγία #undef χρησιμοποιείται για τον ακαθορισμό μιας υπάρχουσας μακροεντολής.#pragma Directive: Είναι μια οδηγία ειδικού σκοπού και χρησιμοποιείται για την ενεργοποίηση ή απενεργοποίηση ορισμένων λειτουργιών.

C++ Χειρισμός σήματος

Τα σήματα είναι οι διακοπές που παρέχει το λειτουργικό σύστημα σε μια διαδικασία που θα τερματίσει πρόωρα ένα πρόγραμμα. Πατώντας Ctrl+C σε ένα UNIX, LINUX , Mac OS X ή μηχάνημα Windows, μπορείτε να δημιουργήσετε διακοπές.

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

ναι όχι Σήμα Περιγραφή
ένας ΣΙΓΦΠΕ Μια λανθασμένη αριθμητική πράξη, όπως μια λειτουργία μηδενικής διακοπής ή υπερχείλισης.
δύο SIGABRT Μη φυσιολογικός τερματισμός προγράμματος, όπως κλήση για ματαίωση.
3 ΣΗΜΕΙΩΣΗ Λήψη σήματος διαδραστικής εστίασης
4 ΣΦΡΑΓΙΔΑ Ανακάλυψη παράνομης εντολής.
5 SIGTERM Υπέβαλε αίτημα τερματισμού στο πρόγραμμα.
6 SIGSEGV Μη έγκυρη πρόσβαση στο δίσκο.

Η συνάρτηση signal().

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

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

Η συνάρτηση raise().

Με τη συνάρτηση raise(), η οποία παίρνει έναν ακέραιο αριθμό σήματος ως όρισμα, μπορείτε να παράγετε σήματα.

ΣΥΝΤΑΞΗ

|_+_|

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

ΠΑΡΑΓΩΓΗ

|_+_|

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

ΣΥΝΤΑΞΗ

|_+_|
ΝΑΙ ΟΧΙ Παράμετρος Περιγραφή
ένας θυμωμένος Μια μεμονωμένη δήλωση που μπορεί να προωθηθεί στη ρουτίνα-έναρξη. Πρέπει να μεταφερθεί ως δείκτης cast τύπου void με σύγκριση. Το NULL μπορεί να χρησιμοποιηθεί όταν δεν υπάρχει όρισμα για μετακίνηση.
δύο Νήμα Ένα αδιαφανές, ειδικό αναγνωριστικό για το τρέχον νήμα που επιστρέφει η υπορουτίνα.
3 attr Ένα χαρακτηριστικό αόρατου αντικειμένου που μπορεί να χρησιμοποιηθεί για τον ορισμό χαρακτηριστικών νημάτων. Μπορείτε να ορίσετε ένα αντικείμενο με ιδιότητες νήματος ή NULL με τις προεπιλεγμένες τιμές.
4 start_routine Η ρουτίνα C++ που μόλις δημιουργηθεί, το νήμα θα εκτελεστεί.

Τερματισμός νημάτων

Χρησιμοποιούμε την ακόλουθη ρουτίνα για να τερματίσουμε ένα νήμα POSIX:

|_+_|

Εδώ, η έξοδος νήματος χρησιμοποιείται για την απευθείας έξοδο από ένα νήμα. Συνήθως, όταν ένα νήμα τελειώσει τη δουλειά του και δεν χρειάζεται πλέον για να λειτουργήσει, ονομάζεται η ρουτίνα pthread exit().

Εάν η main() τερματίσει και εξέλθει με την pthread exit() πριν από τα νήματα που παράγει, τα άλλα νήματα μπορούν να αρχίσουν να τρέχουν. Διαφορετικά ως άκρα main(), τερματίζονται αμέσως

Νήματα που εισέρχονται και αποσπώνται

Ακολουθούνται δύο ρουτίνες που μπορούμε να χρησιμοποιήσουμε για την εισαγωγή ή την αφαίρεση νημάτων.

|_+_|

Η υπορουτίνα pthread join() μπλοκάρει το νήμα που καλεί μέχρι να τερματιστεί το νήμα 'threadid'. Ένα από τα χαρακτηριστικά του καθορίζει αν μπορεί να συνδεθεί ή να αποσπαστεί όταν σχηματίζεται ένα νήμα. Μπορεί να συνδεθεί μόνο με νήματα που δημιουργούνται ως συνδεόμενα. Δεν μπορεί ποτέ να ενωθεί εάν ένα νήμα σχηματιστεί ως αποκολλημένο.

Προγραμματισμός Ιστού C++

Και τι είναι το CGI;

Μια συλλογή οδηγιών που περιγράφουν τον τρόπο κοινής χρήσης των πληροφοριών μεταξύ του διακομιστή web και μιας προσαρμοσμένης δέσμης ενεργειών είναι η Τυπική διεπαφή πύλης ή CGI. Για εξωτερικά συστήματα πύλης, το Generic Gateway Interface ή CGI, είναι ένα πρότυπο για διασύνδεση με διακομιστές πληροφοριών όπως διακομιστές HTTP. Το CGI/1.1 είναι η πιο πρόσφατη έκδοση και το CGI/1.2 βρίσκεται σε εξέλιξη.

Περιήγηση στο Διαδίκτυο

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

Η Popular Gateway Interface (CGI) είναι ένα βασικό πρωτόκολλο που επιτρέπει στις εφαρμογές να επικοινωνούν με διακομιστές Web και με πελάτες. Είναι δυνατό να γραφτούν αυτά τα προγράμματα CGI σε Python, PERL, Shell, C ή C++, κ.λπ.

ΠΑΡΑΔΕΙΓΜΑ

|_+_|

Διαμόρφωση διακομιστή ιστού

Βεβαιωθείτε ότι ο διακομιστής web αποδέχεται το CGI πριν συνεχίσετε με τον προγραμματισμό CGI και ότι έχει σχεδιαστεί για να δέχεται προγράμματα CGI. Πολλά από τα προγράμματα CGI που εκτελεί ο διακομιστής HTTP βρίσκονται σε έναν προ-ρυθμισμένο κατάλογο. Αυτός ο κατάλογος ονομάζεται κατάλογος CGI και ονομάζεται /var/www/cgi-bin κατά σύμβαση. Τα αρχεία CGI θα έχουν επεκτάσεις ως .cgi κατά σύμβαση, αν και είναι εκτελέσιμα με C++.

Κεφαλίδες HTTP

    Set-Cookie: String

Διαμορφώστε το cookie που διέρχεται από τη συμβολοσειρά.

    Τελευταία τροποποίηση: Ημερομηνία

Η ημερομηνία της τελευταίας ενημέρωσης του πόρου.

    Μήκος περιεχομένου: Ν

Το μήκος, σε byte, των δεδομένων που επιστρέφονται. Για να αναφέρει τον κατά προσέγγιση χρόνο φόρτωσης ενός αρχείου, το πρόγραμμα περιήγησης χρησιμοποιεί αυτήν την τιμή.

    Τύπος περιεχομένου:

Μια συμβολοσειρά MIME που καθορίζει τη μορφή της συμβολοσειράς

    Τοποθεσία: URL

Η διεύθυνση URL που πρέπει να επιστραφεί και όχι η διεύθυνση URL που ζητήθηκε. Αυτό το αρχείο θα χρησιμοποιηθεί για την ανακατεύθυνση ενός αιτήματος σε άλλο αρχείο.

    Λήξη: Ημερομηνία

Η μέρα που τα δεδομένα έγιναν άχρηστα. Το πρόγραμμα περιήγησης θα πρέπει να το χρησιμοποιήσει για να αποφασίσει εάν ένας ιστότοπος πρέπει να ανανεωθεί.

Μεταβλητές περιβάλλοντος

    ΤΥΠΟΣ ΠΕΡΙΕΧΟΜΕΝΟΥ: Το είδος των δεδομένων περιεχομένου που χρησιμοποιείται όταν ο πελάτης στέλνει το συνημμένο περιεχόμενο στον διακομιστή. Για παράδειγμα, ανέβασμα αρχείων κ.λπ.ΜΗΚΟΣ ΠΕΡΙΕΧΟΜΕΝΟΥ: Διάρκεια πληροφοριών ερωτηματολογίου που μπορούν να ληφθούν μόνο για αιτήματα POST.HTTP-COOKIE: Επιστρέφει τα cookie που έχουν οριστεί σε τύπο ζεύγους κλειδιών και τιμών.ΠΡΑΚΤΟΡΑΣ ΧΡΗΣΤΗΣ HTTP: Το πεδίο κεφαλίδα αιτήματος χρήστη-πράκτορας παρέχει πληροφορίες σχετικά με τον παράγοντα χρήστη που ξεκίνησε το αίτημα. Είναι το όνομα ενός προγράμματος περιήγησης στο διαδίκτυο.ΠΛΗΡΟΦΟΡΙΕΣ ΔΙΑΔΡΟΜΗΣ: Η κατεύθυνση προς το αρχείο σεναρίου CGI.QUERY STRING: Πληροφορίες με κωδικοποίηση URL που υποβάλλονται με αίτημα από τη διαδικασία GET.REMOTE ADDRR: Η διεύθυνση IP του απομακρυσμένου κεντρικού υπολογιστή που επιτρέπει την ένσταση. Αυτό μπορεί να είναι χρήσιμο για την καταγραφή ή για σκοπούς ελέγχου ταυτότητας.ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΥΠΟΛΟΓΙΣΤΗΣ: Το πλήρως αναγνωρισμένο όνομα του οικοδεσπότη που αναζητά. Εάν αυτές οι πληροφορίες δεν είναι διαθέσιμες, μπορείτε να χρησιμοποιήσετε το REMOTE ADDR για να λάβετε μια διεύθυνση IR.ΜΕΘΟΔΟΣ ΑΙΤΗΣΗΣ: Η μεθοδολογία που χρησιμοποιήθηκε για την παραγωγή της υποβολής. Το GET και το POST είναι οι πιο δημοφιλείς προσεγγίσεις.ΟΝΟΜΑ ΑΡΧΕΙΟΥ ΣΕΝΑΡΙΟΥ: Ο πλήρης δρόμος προς ένα σενάριο CGIΟΝΟΜΑ ΔΙΑΚΟΜΙΣΤΗ: Το όνομα τομέα ή η διεύθυνση IP του διακομιστή.SERVER_SOFTWARE: Το όνομα του προγράμματος και η έκδοση που εκτελεί ο διακομιστής.

Μέθοδοι GET και POST

Όταν προσπαθείτε να μεταφέρετε οποιεσδήποτε λεπτομέρειες από το πρόγραμμα περιήγησής σας στον διακομιστή ιστού και τελικά στην εφαρμογή CGI, πρέπει να συναντήσετε ορισμένα σενάρια. Δύο προσεγγίσεις χρησιμοποιούνται συνήθως από το πρόγραμμα περιήγησης για τη μεταφορά αυτών των πληροφοριών στον διακομιστή ιστού. Αυτές οι προσεγγίσεις είναι η μέθοδος GET και η μέθοδος POST.

ΠΑΡΑΔΕΙΓΜΑ URL Μέθοδος GET

|_+_|

Χρήση cookies

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

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

    Λήγει-Αυτό σημαίνει την ημερομηνία λήξης του cookie. Εάν αυτό είναι κενό, καθώς ο επισκέπτης εγκαταλείπει το πρόγραμμα περιήγησης, το cookie θα λήξει.Τομέα− Εμφανίζει το όνομα τομέα του ιστότοπου.Μονοπάτι− Υποδεικνύει τη διαδρομή προς τον κατάλογο ρυθμίσεων cookie ή την ιστοσελίδα. Εάν προσπαθήσετε να πάρετε ένα cookie από κάποιον κατάλογο ή καρτέλα, μπορεί να είναι μηδενικό.Ασφαλής− Εάν αυτό το πεδίο περιλαμβάνει τη λέξη ασφαλής, τότε μόνο ένας ασφαλής διακομιστής μπορεί να ανακτήσει το cookie. Εάν αυτό το πεδίο είναι κενό, δεν ισχύει κανένας άλλος περιορισμός.Όνομα = αξία− Με τη μορφή ζευγών κλειδιών και τιμών, τα cookies ορίζονται και ανακτώνται.

Παράδειγμα Μεταφόρτωση αρχείου

|_+_|

συμπέρασμα

Με αυτό φτάνουμε στο τέλος αυτού του σεμιναρίου C++. Ελπίζουμε ότι αυτό σας βοήθησε να κατανοήσετε τα βασικά σχετικά με τον προγραμματισμό της C++.