Hva er en Struct i C ++?
En STRUCT er en C ++ datastruktur som kan brukes til å lagre elementer av forskjellige datatyper. I C ++ er en struktur en brukerdefinert datatype. Strukturen oppretter en datatype for å gruppere elementer av forskjellige datatyper under en enkelt datatype.
For eksempel:
Anta at du trenger å lagre informasjon om noen, deres navn, statsborgerskap og alder. Du kan opprette variabler som navn, statsborgerskap og alder for å lagre dataene separat.
Du kan imidlertid trenge å lagre informasjon om mange personer i fremtiden. Det betyr at variabler for forskjellige individer vil bli opprettet. For eksempel navn1, statsborgerskap1, alder1 osv. For å unngå dette er det bedre å lage en struktur.
I denne C ++ opplæringen vil du lære:
- Hva er en Struct i C ++?
- Når skal jeg bruke en struktur?
- Initialisering av C ++ struktur
- Opprette Struct Instances
- Få tilgang til Struct-medlemmer
- Pekere til struktur
- Struktur som funksjonsargument
- Begrensning av en C ++ struktur
Når skal jeg bruke en struktur?
Her er noen grunner til å bruke struktur i C ++.
- Bruk en struktur når du trenger å lagre elementer av forskjellige datatyper under en datatype.
- C ++ structs er en verditype i stedet for å være en referansetype. Bruk en struktur hvis du ikke har tenkt å endre dataene dine etter opprettelsen.
Initialisering av C ++ struktur
For å lage en C ++ struktur bruker vi struct nøkkelordet, etterfulgt av en identifikator. Identifikatoren blir navnet på strukturen. Her er syntaksen for oppretting av en C ++ struktur:
Syntaks:
struct struct_name{// struct members}
I syntaksen ovenfor har vi brukt struct-nøkkelordet. Struct_name er navnet på strukturen.
Struct-medlemmene legges til i krøllete bukseseler. Disse medlemmene tilhører sannsynligvis forskjellige datatyper.
For eksempel:
struct Person{char name[30];int citizenship;int age;}
I eksemplet ovenfor er Person en struktur med tre medlemmer. Medlemmene inkluderer navn, statsborgerskap og alder. Ett medlem er av char-datatype, mens de resterende 2 er heltall når en struktur opprettes, tildeles ikke minne. Minne tildeles bare etter at en variabel er lagt til strukturen.
Opprette Struct Instances
I eksemplet ovenfor har vi opprettet en struktur som heter Person. Vi kan lage en strukturvariabel som følger:
Person p;
P er en strukturvariabel av typen Person. Vi kan bruke denne variabelen for å få tilgang til medlemmene i strukturen.
Få tilgang til Struct-medlemmer
For å få tilgang til struct-medlemmene bruker vi forekomsten av struct og dot (.) -Operatøren. For eksempel for å få tilgang til medlemsalderen til struct Person:
p.age = 27;
Vi har fått tilgang til medlemsalderen til struct Person ved hjelp av struct's forekomst, s. Vi har da satt verdien av medlemsalderen til 27 år.
Eksempel 1:
#includeusing 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;}
Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Ta med iostream header-filen i programmet vårt for å bruke funksjonene som er definert i den.
- Inkluder std navneområdet for å bruke klassene sine uten å kalle det.
- Lag en struktur med navnet Person.
- Begynnelsen på strukturen kroppen.
- Opprett et struct-medlem som heter statsborgerskap av typen heltall.
- Opprett et strukturmedlem med navnet alder av typen heltall.
- Slutten på strukturen kroppen.
- Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
- Opprett en forekomst av strukturen Person og gi den navnet s.
- Sett verdien av struct medlemsborgerskap til 1.
- Sett verdien på strukturen til 27 år.
- Skriv ut verdien av struct-medlemskapet på konsollen sammen med en annen tekst.
- Skriv ut verdien av strukturen på medlemmene på konsollen sammen med annen tekst.
- Programmet skal returnere en verdi hvis det kjører vellykket.
- Slutt på hovedfunksjonen ().
Pekere til struktur
Det er mulig å lage en peker som peker mot en struktur. Det ligner på hvordan pekere som peker mot innfødte datatyper som int, float, double, etc. opprettes. Merk at en peker i C ++ vil lagre en minneplassering.
Eksempel 2:
#includeusing 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;}
Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Ta med iostream header-filen i programmet vårt for å kunne bruke funksjonene.
- Inkluder std navneområdet i programmet vårt for å bruke klassene uten å kalle det.
- Lag en struktur som heter Lengde.
- Start av kroppen til strukturen Lengde.
- Opprett et struct-medlem som heter meter av heltall datatype.
- Lag et struct-medlem med navnet centimeter av typen heltall.
- Slutten på kroppen til strukturen Lengde.
- Ring til hovedfunksjonen ().
- Start av kroppen til hovedfunksjonen ().
- Lag en pekervariabel * ptr og normalvariabel l av typen Lengde.
- Lagre adressen til variabel l i pekervariabelen.
- Vis en melding på konsollen, og be brukeren om å angi verdien for variable målere.
- Les verdien du har angitt av brukeren via tastaturet. Medlemmets funksjonsmålere er her tilgjengelig ved hjelp av pekervariabelen.
- Vis en melding på konsollen, og be brukeren om å angi verdien for variable centimeter.
- Les verdien du har angitt av brukeren via tastaturet. Medlemsfunksjonssentimeterene er her tilgjengelig ved hjelp av pekervariabelen.
- Vis verdiene som er lest fra brukeren på konsollen sammen med annen tekst.
- Programmet må returnere en verdi etter vellykket gjennomføring.
- Slutten av kroppen til hovedfunksjonen ().
Struktur som funksjonsargument
Du kan overføre en struktur til en funksjon som et argument. Dette gjøres på samme måte som å føre et normalt argument. Strukturvariablene kan også overføres til en funksjon. Et godt eksempel er når du trenger å vise verdiene til struct-medlemmer. La oss demonstrere dette:
Eksempel 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< Produksjon:
Her er et skjermbilde av koden:
Kode Forklaring:
- Inkluder iostream header-filen i filen vår. Vi vil da bruke funksjonene uten å få feil.
- Inkluder std navneområdet i programmet vårt for å bruke klassene. Vi trenger ikke ringe navneområdet for å bruke klassene.
- Lag en struktur med navnet Person.
- Start av kroppen til strukturen Person.
- Lag et medlem av struct Person. Medlemmet heter statsborgerskap og er av heltall.
- Lag et medlem av struct Person. Medlemmet heter alder og er av typen heltall.
- Slutten av kroppen til struct Person.
- Lag en funksjon som tar forekomsten av struct Person, p, som argumentet.
- Ring hovedfunksjonen. {Markerer begynnelsen på kroppen til hovedfunksjonen ().
- Opprett en forekomst av struct Person og gi den navnet s.
- Få tilgang til struct-medlemets variable statsborgerskap ved å bruke forekomsten av struct, p, og tildele verdien 1.
- Få tilgang til struct-medlemsvariabelalderen ved hjelp av forekomsten av struct, p, og tildel verdien 27.
- Kall funksjonen og viderefør den til forekomsten av strukturen Person, p, som argumentet.
- Funksjonen må returnere en verdi etter vellykket gjennomføring.
- Slutten av kroppen til hovedfunksjonen ().
- Lag hoveddelen av funksjonen.
- Starten på kroppens funksjon.
- Få tilgang til struct-medlemskapets statsverdi og skriv den ut på konsollen sammen med annen tekst.
- Få tilgang til aldersverdien for strukturmedlem og skriv den ut på konsollen sammen med annen tekst.
- Slutten av funksjonskroppen.
Begrensning av en C ++ struktur
Følgende er begrensningene for strukturer:
- Struct-datatypen kan ikke behandles som innebygde datatyper.
- Operatører som + - og andre kan ikke brukes på strukturvariabler.
- Strukturer støtter ikke skjuling av data. Medlemmene av en struktur er tilgjengelig for enhver funksjon uavhengig av omfanget.
- Statiske medlemmer kan ikke erklæres inne i strukturen.
- Konstruktører kan ikke opprettes inne i en struktur.
Sammendrag:
- En struktur er en datastruktur som lagrer dataelementer som tilhører forskjellige typer.
- Mens en matrise lagrer dataelementer av samme type, lagrer en struktur dataelementer av forskjellige typer.
- En struktur bør brukes når dataelementene ikke forventes å endre verdi.
- Medlemmene av en struktur er tilgjengelig ved hjelp av punkt (.) -Operatøren.
- Vi må lage en forekomst av strukturen.
- For å lage en C ++ struct bruker vi struct-nøkkelordet.
- Pekere som peker på en struktur, opprettes på samme måte som hvordan pekere som peker på vanlige typer opprettes.
- En struktur kan sendes som et argument til en funksjon på samme måte som vanlige funksjoner overføres.