C ++ Struct cu exemplu

Cuprins:

Anonim

Ce este un Struct în C ++?

A STRUCT este o structură de date C ++ care poate fi utilizată pentru a stoca împreună elemente de diferite tipuri de date. În C ++, o structură este un tip de date definit de utilizator. Structura creează un tip de date pentru gruparea articolelor din diferite tipuri de date sub un singur tip de date.

De exemplu:

Să presupunem că trebuie să stocați informații despre cineva, numele, cetățenia și vârsta. Puteți crea variabile precum numele, cetățenia și vârsta pentru a stoca datele separat.

Cu toate acestea, poate fi necesar să stocați informații despre multe persoane în viitor. Înseamnă că vor fi create variabile pentru diferiți indivizi. De exemplu, nume1, cetățenie1, vârstă1 etc. Pentru a evita acest lucru, este mai bine să creați o structură.

În acest tutorial C ++, veți învăța:

  • Ce este un Struct în C ++?
  • Când se folosește o structură?
  • Inițializarea structurii C ++
  • Crearea instanțelor Struct
  • Accesarea membrilor Struct
  • Indicații către structură
  • Struct ca argument de funcție
  • Limitarea unei structuri C ++

Când se folosește o structură?

Iată câteva motive pentru utilizarea structurii în C ++.

  • Utilizați o structură atunci când trebuie să stocați elemente de diferite tipuri de date sub un singur tip de date.
  • Structurile C ++ sunt mai degrabă un tip de valoare decât un tip de referință. Utilizați o structură dacă nu intenționați să vă modificați datele după creare.

Inițializarea structurii C ++

Pentru a crea o structură C ++, folosim cuvântul cheie struct, urmat de un identificator. Identificatorul devine numele struct. Iată sintaxa pentru crearea unei structuri C ++:

Sintaxă:

struct struct_name{// struct members}

În sintaxa de mai sus, am folosit cuvântul cheie struct. Struct_name este numele structurii.

Membrii struct sunt adăugați în paranteze. Acești membri aparțin probabil unor tipuri de date diferite.

De exemplu:

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

În exemplul de mai sus, Persoana este o structură cu trei membri. Membrii includ numele, cetățenia și vârsta. Un membru este de tip char date, în timp ce restul de 2 sunt numere întregi când se creează o structură, memoria nu este alocată. Memoria este alocată numai după ce o variabilă este adăugată la struct.

Crearea instanțelor Struct

În exemplul de mai sus, am creat o structură numită Persoană. Putem crea o variabilă struct astfel:

Person p;

P este o variabilă struct de tip Persoană. Putem folosi această variabilă pentru a accesa membrii struct.

Accesarea membrilor Struct

Pentru a accesa membrii struct, folosim instanța struct și operatorul punct (.). De exemplu, pentru a accesa vârsta de membru a struct Person:

p.age = 27;

Am accesat vârsta de membru a struct Person folosind instanța struct, p. Am stabilit apoi valoarea vârstei de membru la 27 de ani.

Exemplul 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;}

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includeți fișierul antet iostream în programul nostru pentru a utiliza funcțiile definite în acesta.
  2. Includeți spațiul de nume std pentru a-i folosi clasele fără a-l apela.
  3. Creați o structură numită Persoană.
  4. Începutul corpului struct.
  5. Creați un membru struct numit cetățenie de tip întreg.
  6. Creați un membru struct numit vârsta de tip întreg.
  7. Sfârșitul corpului struct.
  8. Apelați funcția main (). Logica programului trebuie adăugată în corpul acestei funcții.
  9. Creați o instanță a structului Person și dându-i numele p.
  10. Setați valoarea cetățeniei membre struct la 1.
  11. Setați valoarea vârstei membrului struct la 27.
  12. Imprimați valoarea cetățeniei membre struct pe consolă alături de alt text.
  13. Imprimați valoarea vârstei membrului struct pe consolă alături de alt text.
  14. Programul ar trebui să returneze o valoare dacă rulează cu succes.
  15. Sfârșitul funcției main ().

Indicații către structură

Este posibil să creați un pointer care indică o structură. Este similar cu modul în care sunt create indicii care indică tipuri de date native precum int, float, double etc. Rețineți că un indicator în C ++ va stoca o locație de memorie.

Exemplul 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;}

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includeți fișierul antet iostream în programul nostru pentru a-i folosi funcțiile.
  2. Includeți spațiul de nume std în programul nostru pentru a utiliza clasele sale fără a-l apela.
  3. Creați o structură numită Lungime.
  4. Începutul corpului structurii Lungime.
  5. Creați un membru struct numit metri de tip de date întregi.
  6. Creați un membru struct numit centimetri de tip întreg.
  7. Sfârșitul corpului structurii Lungime.
  8. Apelați funcția main ().
  9. Începutul corpului funcției main ().
  10. Creați o variabilă pointer * ptr și o variabilă normală l de tipul Lungime.
  11. Stocați adresa variabilei l în variabila pointer.
  12. Afișați un mesaj pe consolă, solicitând utilizatorului să introducă valoarea pentru contoare variabile.
  13. Citiți valoarea introdusă de utilizator prin intermediul tastaturii. Aici se accesează contoare de funcții membre folosind variabila pointer.
  14. Afișați un mesaj pe consolă, solicitând utilizatorului să introducă valoarea pentru centimetri variabili.
  15. Citiți valoarea introdusă de utilizator prin intermediul tastaturii. Funcția membru centimetri este accesată aici utilizând variabila pointer.
  16. Afișați valorile citite de utilizator pe consolă alături de alt text.
  17. Programul trebuie să returneze o valoare după executarea cu succes.
  18. Sfârșitul corpului funcției main ().

Struct ca argument de funcție

Puteți transmite o structură unei funcții ca argument. Acest lucru se face în același mod în care se trece un argument normal. Variabilele struct pot fi transmise și unei funcții. Un exemplu bun este atunci când trebuie să afișați valorile membrilor struct. Să demonstrăm acest lucru:

Exemplul 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<

Ieșire:

Iată o captură de ecran a codului:

Explicatie cod:

  1. Includeți fișierul antet iostream în fișierul nostru. Vom folosi apoi funcțiile sale fără a primi erori.
  2. Includeți spațiul de nume std în programul nostru pentru a utiliza clasele sale. Nu va trebui să apelăm spațiul de nume pentru a folosi clasele sale.
  3. Creați o structură numită Persoană.
  4. Începutul corpului structului Persoană.
  5. Creați un membru al struct Person. Membrul este numit cetățenie și este de tip întreg.
  6. Creați un membru al struct Person. Membrul se numește vârstă și este de tip întreg.
  7. Sfârșitul corpului structului Persoană.
  8. Creați o funcție care are ca argument instanța struct Person, p.
  9. Apelați funcția principală. {Marchează începutul corpului funcției main ().
  10. Creați o instanță de struct Person și dați-i numele p.
  11. Accesați variabila cetățenie membru struct folosind instanța struct, p și atribuindu-i valoarea 1.
  12. Accesați variabila vârstă membru struct folosind instanța struct, p și atribuindu-i valoarea 27.
  13. Apelați funcția și transmiteți-o instanța structului Person, p, ca argument.
  14. Funcția trebuie să returneze o valoare după executarea cu succes.
  15. Sfârșitul corpului funcției main ().
  16. Creați corpul funcției.
  17. Începutul corpului funcției.
  18. Accesați valoarea de cetățenie membru struct și tipăriți-o pe consolă alături de alt text.
  19. Accesați valoarea de vârstă a membrului struct și imprimați-o pe consolă alături de alt text.
  20. Sfârșitul corpului funcției.

Limitarea unei structuri C ++

Următoarele sunt limitările structurilor:

  • Tipul de date struct nu poate fi tratat ca tipuri de date încorporate.
  • Operatorii precum + - și alții nu pot fi folosiți pe variabilele de structură.
  • Structurile nu acceptă ascunderea datelor. Membrii unei structuri pot fi accesate de orice funcție, indiferent de sfera acesteia.
  • Membrii statici nu pot fi declarați în interiorul corpului structurii.
  • Constructorii nu pot fi creați în interiorul unei structuri.

Rezumat:

  • O structură este o structură de date care stochează elemente de date aparținând diferitelor tipuri.
  • În timp ce o matrice stochează elemente de date de un tip similar, o structură stochează elemente de date de diferite tipuri.
  • O structură trebuie utilizată atunci când elementele de date nu se așteaptă să schimbe valoarea.
  • Membrii unei structuri sunt accesați folosind operatorul punct (.).
  • Trebuie să creăm o instanță a struct.
  • Pentru a crea o struct C ++, folosim cuvântul cheie struct.
  • Pointerii care indică o structură sunt creați în mod similar cu modul în care sunt creați pointerii care indică tipuri obișnuite.
  • O structură poate fi transmisă ca argument către o funcție în același mod în care sunt transmise funcțiile obișnuite.