Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++-structuur met voorbeeld

Wat is een structuur in C++?

EEN STRUCT is een C++-gegevensstructuur die kan worden gebruikt om elementen van verschillende gegevenstypen 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 gegevenstypes onder één enkel gegevenstype.

Bijvoorbeeld:

Stel dat u informatie over iemand, diens naam, staatsburgerschap en leeftijd moet opslaan. U kunt variabelen zoals naam, nationaliteit 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 er variabelen voor verschillende individuen worden gemaakt. Bijvoorbeeld naam1, nationaliteit1, leeftijd1 etc. Om dit te voorkomen kun je beter een structuur maken.

In deze C++ tutorial leer je:

  • Wat is een structuur in C++?
  • Wanneer gebruik je een structuur?
  • C++ Struct-initialisatie
  • Structuurinstanties maken
  • Toegang tot structurele leden
  • Aanwijzingen voor structuur
  • Structeren 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 eerder een waardetype dan een referentietype. Gebruik een struct als u niet van plan bent uw gegevens na het maken te wijzigen.

C++ Struct-initialisatie

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

Syntaxis:

struct struct_name  
{  
     // struct members
}   

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

De structuurelementen worden toegevoegd tussen accolades. 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 zijn onder meer naam, staatsburgerschap en leeftijd. Eén lid is van het gegevenstype char, 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 structuur is toegevoegd.

Structuurinstanties maken

In het bovenstaande voorbeeld hebben we een structuur gemaakt met de naam Person. We kunnen als volgt een structvariabele maken:

Person p;

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

Toegang tot structleden

Om toegang te krijgen tot de struc-leden, gebruiken we de instantie van de struct en de punt (.) operator. Om bijvoorbeeld toegang te krijgen tot de lidmaatschapsleeftijd van struct Persoon:

p.age = 27;

We hebben toegang gekregen tot de lidleeftijd van struct Person met behulp van de instantie van de struct, p. We hebben vervolgens de waarde van de lidmaatschapsleeftijd op 27 gezet.

Voorbeeld 1:

#include <iostream>    
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;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Neem het iostream-headerbestand op in ons programma om de daarin gedefinieerde functies te gebruiken.
  2. Voeg de std-naamruimte toe om de klassen te gebruiken zonder deze aan te roepen.
  3. Maak een structuur met de naam Persoon.
  4. Het begin van het structuurlichaam.
  5. Maak een structlid 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 structuurlichaam.
  8. Roep de functie main() aan. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
  9. Maak een instantie van de struct Person en geef deze de naam p.
  10. Stel de waarde van struct member burgerschap in op 1.
  11. Stel de waarde van de struct-ledenleeftijd in op 27.
  12. Druk de waarde van het burgerschap van het structlid af op de console naast een andere tekst.
  13. Druk de waarde van de structledenleeftijd af op de console naast wat andere tekst.
  14. Het programma zou een waarde moeten retourneren als het succesvol is uitgevoerd.
  15. Einde van de functie main().

Aanwijzingen voor structuur

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

Voorbeeld 2:

#include <iostream>
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;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  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 de klassen te gebruiken zonder deze aan te roepen.
  3. Maak een struct met de naam Lengte.
  4. Begin van de body van de structlengte.
  5. Maak een structlid met de naam meters van het gegevenstype integer.
  6. Maak een structlid met de naam centimeters van het type integer.
  7. Einde van het lichaam van de structuurlengte.
  8. Bel de functie main() aan.
  9. Begin van de hoofdtekst van de functie main().
  10. Maak een pointervariabele *ptr en normale variabele l van het type Length.
  11. Sla het adres van variabele l op in onze pointervariabele.
  12. Geef een bericht weer op de console waarin de gebruiker wordt gevraagd de waarde voor variabele meters in te voeren.
  13. Lees de waarde die door de gebruiker is ingevoerd via het toetsenbord. De ledenfunctiemeters zijn hier toegankelijk met behulp van de pointervariabele.
  14. Geef een bericht weer op de console waarin de gebruiker wordt gevraagd de waarde voor variabele centimeters in te voeren.
  15. Lees de waarde die door de gebruiker is ingevoerd via het toetsenbord. De lidfunctie centimeters is hier toegankelijk met behulp van de aanwijzervariabele.
  16. Geef de waarden weer die door de gebruiker zijn gelezen op de console naast wat andere tekst.
  17. Het programma moet een waarde teruggeven bij succesvolle uitvoering.
  18. Einde van de hoofdtekst van de functie main().

Structeren als functieargument

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

Voorbeeld 3:

#include<iostream>
using 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<<endl;
	cout << " Person age: " << p.age;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Voeg het iostream-headerbestand toe aan ons bestand. We zullen dan de functies 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 heeft de naam burgerschap en is van het type integer.
  6. Maak een lid van struct Person. Het lid heet leeftijd en is van het type integer.
  7. Einde van het lichaam van struct Persoon.
  8. Maak een functie die de instantie van struct Person, p, als argument neemt.
  9. Bel de hoofdfunctie aan. 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 struct-lidvariabele burgerschap met behulp van de instantie van de struct, p, en deze de waarde 1 toewijzen.
  12. Toegang tot de struct-lidvariabele leeftijd met behulp van de instantie van de struct, p, en deze de waarde 27 toewijzen.
  13. Noem de functie en geef de instantie van de struct Person, p, door als argument.
  14. De functie moet een waarde teruggeven bij succesvolle uitvoering.
  15. Einde van de hoofdtekst van de functie main().
  16. Maak de hoofdtekst van de functie.
  17. Het begin van de hoofdtekst van de functie.
  18. Toegang tot de burgerschapswaarde van het structlid en deze samen met andere tekst op de console afdrukken.
  19. Toegang tot de leeftijdswaarde van de structleden en deze samen met andere tekst op de console afdrukken.
  20. Einde van de functietekst.

Beperking van een C++-structuur

Hieronder volgen de beperkingen van structuren:

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

Samenvatting:

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

C Taal

  1. C-structuren en aanwijzers
  2. Operators in C++ met voorbeeld:wat is, typen en programma's
  3. C++ do...while-lus met voorbeelden
  4. C++ Switch Case Statement met VOORBEELD
  5. C++ Dynamische toewijzing van arrays met voorbeeld
  6. C++-aanwijzers met voorbeelden
  7. C++ Char-gegevenstype met voorbeelden
  8. Overbelasting van C++-operator met voorbeelden
  9. std::lijst in C++ met Voorbeeld
  10. C++-functies met programmavoorbeelden
  11. Verschil tussen structuur en klasse:uitgelegd met C++-voorbeeld