Δομή C ++ με παράδειγμα

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

Anonim

Τι είναι μια δομή στο C ++;

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

Για παράδειγμα:

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

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

Σε αυτό το σεμινάριο C ++, θα μάθετε:

  • Τι είναι μια δομή στο C ++;
  • Πότε να χρησιμοποιήσετε μια Δομή;
  • Αρχικοποίηση δομής C ++
  • Δημιουργία παρουσιών δομής
  • Πρόσβαση στα μέλη του Struct
  • Δείκτες στη δομή
  • Δομή ως επιχείρημα λειτουργίας
  • Περιορισμός δομής C ++

Πότε να χρησιμοποιήσετε μια Δομή;

Ακολουθούν ορισμένοι λόγοι που χρησιμοποιούν τη δομή στο C ++.

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

Αρχικοποίηση δομής C ++

Για να δημιουργήσουμε μια δομή C ++, χρησιμοποιούμε τη λέξη-κλειδί struct, ακολουθούμενη από ένα αναγνωριστικό. Το αναγνωριστικό γίνεται το όνομα της δομής. Εδώ είναι η σύνταξη για τη δημιουργία μιας δομής C ++:

Σύνταξη:

struct struct_name{// struct members}

Στην παραπάνω σύνταξη, χρησιμοποιήσαμε τη λέξη-κλειδί struct. Το struct_name είναι το όνομα της δομής.

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

Για παράδειγμα:

struct Person{char name[30];int citizenship;int age;}

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

Δημιουργία παρουσιών δομής

Στο παραπάνω παράδειγμα, δημιουργήσαμε μια δομή με το όνομα Person. Μπορούμε να δημιουργήσουμε μια μεταβλητή struct ως εξής:

Person p;

Το p είναι μια μεταβλητή δομής του τύπου Person. Μπορούμε να χρησιμοποιήσουμε αυτήν τη μεταβλητή για πρόσβαση στα μέλη της δομής.

Πρόσβαση στα μέλη του Struct

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

p.age = 27;

Έχουμε πρόσβαση στην ηλικία μέλους του Str Person χρησιμοποιώντας την παρουσία του struct, σελ. Έχουμε ορίσει την τιμή της ηλικίας μέλους σε 27.

Παράδειγμα 1:

#include using namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}

Παραγωγή:

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

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream στο πρόγραμμά μας για να χρησιμοποιήσετε τις λειτουργίες που ορίζονται σε αυτό.
  2. Συμπεριλάβετε το χώρο ονομάτων std για να χρησιμοποιήσετε τις κλάσεις του χωρίς να το καλέσετε.
  3. Δημιουργήστε μια δομή με όνομα Person.
  4. Η αρχή του δομικού σώματος.
  5. Δημιουργήστε ένα μέλος δομής που ονομάζεται υπηκοότητα τύπου ακέραιος.
  6. Δημιουργήστε ένα μέλος δομής με όνομα ηλικίας τύπου ακέραιος.
  7. Τέλος του δομικού σώματος.
  8. Καλέστε την κύρια λειτουργία (). Η λογική του προγράμματος πρέπει να προστεθεί στο σώμα αυτής της λειτουργίας.
  9. Δημιουργήστε μια παρουσία του δομικού ατόμου και δώστε του το όνομα σελ.
  10. Ορίστε την τιμή της ιθαγένειας των μελών μελών σε 1.
  11. Ορίστε την τιμή της δομικής ηλικίας μέλους σε 27.
  12. Εκτυπώστε την τιμή της ιδιότητας μέλους της δομής στην κονσόλα μαζί με κάποιο άλλο κείμενο.
  13. Εκτυπώστε την τιμή της δομικής περιόδου μέλους στην κονσόλα μαζί με κάποιο άλλο κείμενο.
  14. Το πρόγραμμα θα πρέπει να επιστρέφει μια τιμή εάν εκτελείται με επιτυχία.
  15. Τέλος της κύριας συνάρτησης ().

Δείκτες στη δομή

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

Παράδειγμα 2:

#include using namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}

Παραγωγή:

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

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream στο πρόγραμμά μας για να χρησιμοποιήσετε τις λειτουργίες του.
  2. Συμπεριλάβετε το std namespace στο πρόγραμμά μας για να χρησιμοποιήσετε τις τάξεις του χωρίς να το καλέσετε.
  3. Δημιουργήστε μια δομή με το όνομα Μήκος.
  4. Έναρξη του σώματος της δομής Μήκος.
  5. Δημιουργήστε ένα δομικό μέλος με όνομα μετρητές ακέραιου τύπου δεδομένων.
  6. Δημιουργήστε ένα δομικό μέλος που ονομάζεται εκατοστά ακέραιου τύπου.
  7. Τέλος του σώματος της δομής Μήκος.
  8. Καλέστε την κύρια λειτουργία ().
  9. Έναρξη του σώματος της κύριας συνάρτησης ().
  10. Δημιουργήστε μια μεταβλητή δείκτη * ptr και κανονική μεταβλητή l του μήκους τύπου.
  11. Αποθηκεύστε τη διεύθυνση της μεταβλητής l στη μεταβλητή δείκτη.
  12. Εμφανίστε ένα μήνυμα στην κονσόλα, ζητώντας από το χρήστη να εισαγάγει την τιμή για μεταβλητούς μετρητές.
  13. Διαβάστε την τιμή που εισήγαγε ο χρήστης μέσω του πληκτρολογίου. Οι μετρητές συνάρτησης μέλους έχουν πρόσβαση εδώ χρησιμοποιώντας τη μεταβλητή δείκτη.
  14. Εμφανίστε ένα μήνυμα στην κονσόλα, ζητώντας από τον χρήστη να εισαγάγει την τιμή για μεταβλητά εκατοστά.
  15. Διαβάστε την τιμή που εισήγαγε ο χρήστης μέσω του πληκτρολογίου. Τα εκατοστά λειτουργίας μέλους είναι εδώ προσβάσιμα χρησιμοποιώντας τη μεταβλητή δείκτη.
  16. Εμφανίστε τις τιμές που διαβάζονται από τον χρήστη στην κονσόλα μαζί με κάποιο άλλο κείμενο.
  17. Το πρόγραμμα πρέπει να επιστρέψει μια τιμή κατά την επιτυχή εκτέλεση.
  18. Τέλος του σώματος της κύριας () συνάρτησης.

Δομή ως επιχείρημα λειτουργίας

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

Παράδειγμα 3:

#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship<

Παραγωγή:

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

Επεξήγηση κώδικα:

  1. Συμπεριλάβετε το αρχείο κεφαλίδας iostream στο αρχείο μας. Στη συνέχεια, θα χρησιμοποιήσουμε τις λειτουργίες του χωρίς λάθη.
  2. Συμπεριλάβετε το χώρο ονομάτων std στο πρόγραμμά μας για να χρησιμοποιήσετε τις τάξεις του. Δεν θα χρειαστεί να καλέσουμε το χώρο ονομάτων για να χρησιμοποιήσουμε τις τάξεις του.
  3. Δημιουργήστε μια δομή με όνομα Person.
  4. Έναρξη του σώματος του δομικού ατόμου.
  5. Δημιουργήστε ένα μέλος του struct Person. Το μέλος ονομάζεται υπηκοότητα και είναι τύπου ακέραιος.
  6. Δημιουργήστε ένα μέλος του struct Person. Το μέλος ονομάζεται ηλικία και είναι τύπου ακέραιος.
  7. Τέλος του σώματος του δομικού προσώπου.
  8. Δημιουργήστε μια συνάρτηση που λαμβάνει την παρουσία του Str Person, p, ως όρισμα.
  9. Καλέστε την κύρια λειτουργία. Το {σηματοδοτεί την αρχή του σώματος της κύριας συνάρτησης ().
  10. Δημιουργήστε μια παρουσία του Person Person και δώστε το το όνομα p.
  11. Αποκτήστε πρόσβαση στη μεταβλητή υπηκοότητα του δομικού μέλους χρησιμοποιώντας την παρουσία του struct, p και εκχωρήστε την την τιμή 1
  12. Αποκτήστε πρόσβαση στην μεταβλητή ηλικιακή δομή μέλους χρησιμοποιώντας την παρουσία της δομής, p και εκχωρήστε την την τιμή 27.
  13. Καλέστε τη συνάρτηση και μεταβιβάζετε σε αυτήν την παρουσία του δομικού ατόμου, p, ως όρισμα.
  14. Η συνάρτηση πρέπει να επιστρέψει μια τιμή κατά την επιτυχή εκτέλεση.
  15. Τέλος του σώματος της κύριας () συνάρτησης.
  16. Δημιουργήστε το σώμα της συνάρτησης.
  17. Η αρχή του σώματος της συνάρτησης.
  18. Αποκτήστε πρόσβαση στην τιμή υπηκοότητας του δομικού μέλους και εκτυπώστε την στην κονσόλα μαζί με άλλο κείμενο.
  19. Αποκτήστε πρόσβαση στην τιμή ηλικίας δομικών μελών και εκτυπώστε την στην κονσόλα μαζί με άλλο κείμενο.
  20. Τέλος του σώματος λειτουργίας.

Περιορισμός δομής C ++

Τα ακόλουθα είναι τα όρια των δομών:

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

Περίληψη:

  • Το struct είναι μια δομή δεδομένων που αποθηκεύει στοιχεία δεδομένων που ανήκουν σε διαφορετικούς τύπους.
  • Ενώ ένας πίνακας αποθηκεύει στοιχεία δεδομένων παρόμοιου τύπου, μια δομή αποθηκεύει στοιχεία δεδομένων διαφορετικών τύπων.
  • Μια δομή θα πρέπει να χρησιμοποιείται όταν τα στοιχεία δεδομένων δεν αναμένεται να αλλάξουν αξία.
  • Τα μέλη μιας δομής έχουν πρόσβαση χρησιμοποιώντας τον τελεστή τελείας (.).
  • Πρέπει να δημιουργήσουμε μια παρουσία της δομής.
  • Για να δημιουργήσουμε μια δομή C ++, χρησιμοποιούμε τη λέξη-κλειδί struct.
  • Οι δείκτες που δείχνουν σε μια δομή δημιουργούνται παρόμοια με τον τρόπο δημιουργίας των δεικτών που δείχνουν σε κανονικούς τύπους.
  • Μια δομή μπορεί να περάσει ως όρισμα σε μια συνάρτηση με τον ίδιο τρόπο που περνούν οι συνηθισμένες συναρτήσεις.