C ++ Struct met voorbeeld

Inhoudsopgave:

Anonim

Wat is een structuur in C ++?

Een STRUCT is een C ++ datastructuur die kan worden gebruikt om elementen van verschillende datatypes samen op te slaan. In C ++ is een structuur een door de gebruiker gedefinieerd gegevenstype. De structuur creëert een gegevenstype voor het groeperen van items van verschillende gegevenstypen onder één gegevenstype.

Bijvoorbeeld:

Stel dat u informatie over iemand, diens naam, staatsburgerschap en leeftijd moet opslaan. U kunt variabelen zoals naam, burgerschap en leeftijd maken om de gegevens afzonderlijk op te slaan.

Het kan echter zijn dat u in de toekomst informatie over veel personen moet opslaan. Het betekent dat variabelen voor verschillende individuen worden gemaakt. Bijvoorbeeld naam1, burgerschap1, leeftijd1 enz. Om dit te voorkomen, is het beter om een ​​structuur te maken.

In deze C ++ tutorial leer je:

  • Wat is een structuur in C ++?
  • Wanneer gebruik je een structuur?
  • C ++ Struct initialisatie
  • Structurele instanties maken
  • Toegang tot Struct-leden
  • Wijzers naar structuur
  • Struct als functieargument
  • Beperking van een C ++ -structuur

Wanneer gebruik je een structuur?

Hier zijn enkele redenen om structuur in C ++ te gebruiken.

  • Gebruik een struct wanneer u elementen van verschillende gegevenstypen onder één gegevenstype moet opslaan.
  • C ++ structs zijn een waardetype in plaats van een referentietype. Gebruik een struct als u niet van plan bent uw gegevens na het aanmaken te wijzigen.

C ++ Struct initialisatie

Om een ​​C ++ -structuur te maken, gebruiken we het struct-sleutelwoord, gevolgd door een identifier. De identifier wordt de naam van de struct. Hier is de syntaxis voor het maken van een C ++ -structuur:

Syntaxis:

struct struct_name{// struct members}

In de bovenstaande syntaxis hebben we het struct-sleutelwoord gebruikt. De struct_name is de naam van de structuur.

De struct-leden worden tussen accolades toegevoegd. Deze leden behoren waarschijnlijk tot verschillende gegevenstypen.

Bijvoorbeeld:

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

In het bovenstaande voorbeeld is Persoon een structuur met drie leden. De leden omvatten naam, burgerschap en leeftijd. Een lid is van het char-gegevenstype, terwijl de overige 2 gehele getallen zijn wanneer een structuur wordt gemaakt, wordt er geen geheugen toegewezen. Geheugen wordt pas toegewezen nadat een variabele aan de struct is toegevoegd.

Structurele instanties maken

In het bovenstaande voorbeeld hebben we een structuur gemaakt met de naam Persoon. We kunnen als volgt een struct-variabele maken:

Person p;

De p is een struct-variabele van het type Person. We kunnen deze variabele gebruiken om toegang te krijgen tot de leden van de struct.

Toegang tot Struct-leden

Om toegang te krijgen tot de struct-leden, gebruiken we de instantie van de struct en de puntoperator (.). Om bijvoorbeeld toegang te krijgen tot de ledenleeftijd van struct Person:

p.age = 27;

We hebben toegang gekregen tot de leeftijd van het lid van struct Person met behulp van de instantie van struct, p. We hebben dan de waarde van de lidleeftijd op 27 gezet.

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

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Neem het iostream-headerbestand op in ons programma om de daarin gedefinieerde functies te gebruiken.
  2. Voeg de std-naamruimte toe om zijn klassen te gebruiken zonder deze op te roepen.
  3. Maak een structuur met de naam Persoon.
  4. Het begin van het struct-lichaam.
  5. Maak een struct-lid met de naam burgerschap van het type integer.
  6. Maak een struct-lid met de naam age van het type integer.
  7. Einde van het struct-lichaam.
  8. Roep de functie main () aan. De programmalogica moet worden toegevoegd in de body van deze functie.
  9. Maak een instantie van de struct Person en geef deze de naam p.
  10. Stel de waarde van het burgerschap van struct-leden in op 1.
  11. Stel de waarde van de leeftijd van struct-leden in op 27.
  12. Druk de waarde van het burgerschap van het struct-lid af op de console naast een andere tekst.
  13. Druk de waarde van de leeftijd van het struct-lid op de console af naast een andere tekst.
  14. Het programma zou een waarde moeten retourneren als het succesvol wordt uitgevoerd.
  15. Einde van de main () functie.

Wijzers naar structuur

Het is mogelijk om een ​​aanwijzer te maken die naar een structuur verwijst. Het is vergelijkbaar met hoe verwijzingen naar native gegevenstypen zoals int, float, double, etc. worden gemaakt. Merk op dat een aanwijzer in C ++ een geheugenlocatie zal opslaan.

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

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Neem het iostream-headerbestand op in ons programma om de functies ervan te gebruiken.
  2. Neem de std-naamruimte op in ons programma om zijn klassen te gebruiken zonder deze op te roepen.
  3. Maak een structuur met de naam Lengte.
  4. Begin van de body van de struct. Lengte.
  5. Maak een struct-lid met de naam meters van het gegevenstype integer.
  6. Maak een struct-lid met de naam centimeters van het type integer.
  7. Einde van de body van de struct. Lengte.
  8. Roep de functie main () aan.
  9. Begin van de hoofdtekst van de functie main ().
  10. Maak een pointervariabele * ptr en een normale variabele l van het type Lengte.
  11. Sla het adres van variabele l op in onze pointervariabele.
  12. Geef een bericht weer op de console en vraag de gebruiker om de waarde voor variabele meters in te voeren.
  13. Lees de door de gebruiker ingevoerde waarde via het toetsenbord. De lidfunctiemeters zijn hier toegankelijk met behulp van de pointervariabele.
  14. Geef een bericht weer op de console en vraag de gebruiker om de waarde voor variabele centimeters in te voeren.
  15. Lees de door de gebruiker ingevoerde waarde via het toetsenbord. De lidfunctie centimeters is hier toegankelijk met behulp van de pointer-variabele.
  16. Geef de waarden weer die van de gebruiker zijn gelezen op de console, naast een andere tekst.
  17. Het programma moet een waarde retourneren bij een succesvolle uitvoering.
  18. Einde van de hoofdtekst van de functie main ().

Struct als functieargument

Je kunt een struct doorgeven aan een functie als argument. Dit gebeurt op dezelfde manier als het doorgeven van een normaal argument. De struct-variabelen kunnen ook worden doorgegeven aan een functie. Een goed voorbeeld is wanneer u de waarden van struct-leden moet weergeven. Laten we dit demonstreren:

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

Uitgang:

Hier is een screenshot van de code:

Code Verklaring:

  1. Voeg het iostream-headerbestand toe aan ons bestand. We zullen dan de functies ervan gebruiken zonder fouten te krijgen.
  2. Neem de std-naamruimte op in ons programma om zijn klassen te gebruiken. We hoeven de naamruimte niet aan te roepen om zijn klassen te gebruiken.
  3. Maak een structuur met de naam Persoon.
  4. Begin van het lichaam van de struct Persoon.
  5. Maak een lid van struct Person. Het lid wordt burgerschap genoemd en is van het type integer.
  6. Maak een lid van struct Person. Het lid krijgt de naam leeftijd en is van het type integer.
  7. Einde van het lichaam van struct Persoon.
  8. Maak een functie die de instantie struct Person, p, als argument moet nemen.
  9. Roep de hoofdfunctie op. De {markeert het begin van de hoofdtekst van de functie main ().
  10. Maak een instantie van struct Person en geef deze de naam p.
  11. Toegang tot de variabele burgerschap van het struct-lid met behulp van de instantie van de struct, p, en hieraan de waarde 1 toewijzen.
  12. Ga naar de struct-lidvariabele leeftijd met behulp van de instantie van de struct, p, en wijs hier de waarde 27 aan toe.
  13. Roep de functie aan en geef er de instantie van de struct Person, p, als argument aan door.
  14. De functie moet een waarde retourneren bij een succesvolle uitvoering.
  15. Einde van de hoofdtekst van de functie main ().
  16. Creëer de body van de functie.
  17. Het begin van het lichaam van de functie.
  18. Krijg toegang tot de waarde van het struct-lidburgerschap en druk deze samen met andere tekst op de console af.
  19. Toegang tot de leeftijdswaarde van het struct-lid en deze samen met andere tekst op de console afdrukken.
  20. Einde van de functie body.

Beperking van een C ++ -structuur

Hieronder volgen de beperkingen van constructies:

  • Het struct-gegevenstype kan niet worden behandeld als ingebouwde gegevenstypen.
  • Operatoren zoals + - en andere kunnen niet worden gebruikt voor structuurvariabelen.
  • Structuren ondersteunen het verbergen van gegevens niet. De leden van een structuur zijn toegankelijk voor elke functie, ongeacht de omvang ervan.
  • Statische leden kunnen niet worden gedeclareerd binnen het structuurlichaam.
  • Constructeurs kunnen niet binnen een structuur worden gemaakt.

Overzicht:

  • Een struct is een gegevensstructuur waarin gegevenselementen worden opgeslagen die tot verschillende typen behoren.
  • Terwijl een array data-elementen van een vergelijkbaar type opslaat, slaat een struct data-elementen van verschillende typen op.
  • Een struct moet worden gebruikt wanneer de data-elementen naar verwachting niet van waarde veranderen.
  • De leden van een struct zijn toegankelijk met de puntoperator (.).
  • We moeten een instantie van de struct maken.
  • Om een ​​C ++ -structuur te maken, gebruiken we het struct-sleutelwoord.
  • Pointers die naar een struct verwijzen, worden op dezelfde manier gemaakt als hoe pointers die naar reguliere typen verwijzen, worden gemaakt.
  • Een struct kan als argument aan een functie worden doorgegeven op dezelfde manier als gewone functies.