Anbefalt, 2024

Redaksjonens

Forskjellen mellom struktur og klasse

Både en struktur og en klasse gir en måte å lage en tilpasset datatype som kan brukes videre til å lage forekomster. C ++ utvider rollen som struktur for å lage en klasse. Både struktur og klasse, ligner på alle måter, bortsett fra en forskjell at strukturen som standard har hele sitt medlem som "offentlig", og klasse som standard har hele sitt medlem "privat". La oss studere forskjellen mellom struktur og klasse ved å bruke sammenligningsdiagram.

Sammenligningstabel

Grunnlag for sammenligningStrukturKlasse
grunn~~POS=TRUNCHvis tilgangsspesifikatoren ikke er erklært, er alle medlemmer som standard "offentlige" som standard.Hvis tilgangsspesifikatoren ikke er erklært, er alle medlemmer som standard "private" som standard.
Erklæringstruktur strukturnavn {
skriv strukturelement 1;
skriv strukturelement 2;
skriv strukturelement 3;
.
.
.
};
klasse klassenavn {
data medlem;
medlem funksjon;
};
ForekomstInstans av 'struktur' kalles 'strukturvariabel'.Instans av en 'klasse' kalles 'objekt'.

Definisjon av struktur

En struktur er en samling av variabler av ulik datatyper, alle referert til av et navn. En strukturdeklarasjon danner en mal som brukes til å lage en forekomst av strukturen. Strukturen er erklært som følger.

 struct sname {type struct_element1; skriv struct_element2; skriv struct_element3; . . . } variabel1, variabel2, . . .; 

Søkeordet 'struct' definerer til kompilatoren at en struktur blir erklært. Snamen representerer navnet gitt til strukturen. Strukturerklæringen er alltid avsluttet av et semikolon, som det regnes som en erklæring. Du kan erklære forekomsten av strukturen før opphøringen som gjort i overkoden (variabel1, variabel2) eller du kan erklære forekomsten av struktur i hoved () ved å skrive forekomstnavnet på forhånd med navnet på strukturen.

 // eksempel. main () {sname S1, S2; } 

Her S1 og S2 er forekomstene av strukturen. Instansene av strukturen kalles "strukturvariabel". Elementet deklarert inne i strukturen kan nås gjennom strukturvariablene ved bruk av dot (.) Operatør.

 // eksempel S1. struct_element1; 
  • Strukturen av struktur kan også opprettes, for dette må du først erklære en struktur og deretter erklære en matrise av den typen.
 // sample strukt sname sarray [10]; 

Over setningen lager en matrise med navnet 'sarray' som inneholder ti variabler, og hver variabel er organisert som definert i 'sname'.

  • Du kan overføre et strukturmedlem til en funksjon, og du kan overføre en hel struktur til en funksjon.
  • Som en helhet pointer, array pointer, kan en struktur pointer også bli erklært ved å plassere '*' foran navnet på strukturvariabler.
 // sample struct sname * S1; 

Merk:

'Struktur'-elementene lagres i en sammenhengende minneplass.

Definisjon av klasse

Klasse i OOP definerer en ny type som inneholder data medlemmer og medlem funksjon, som brukes til å få tilgang til data medlemmer av klassen. Eksempler på klasser kalles "objekter" som hver har samme organisasjon som en klasse. Klassen er en logisk abstraksjon, mens et objekt har en fysisk eksistens. Klassen er synaktisk lik strukturen. Klassen kan deklareres som følger.

 klasse klassenavn {private data medlemmer og medlemsfunksjoner. access_specifier type data_member; skriv mem_funct (parameterliste) {. . }} objektliste; 

Her er klassen et søkeord som erklærer kompilatoren at en klasse er blitt erklært. Hovedfunksjonen til OOP er datagulv som oppnås ved å gi tre tilgangspesifikatorer som er "offentlige", "private", "beskyttede". Hvis du ikke angir noen tilgangsspesifikator i klassen mens du erklærer datamedlemmer eller medlemsfunksjoner, blir alle som privat ansett som privat. Den offentlige tilgangsspesifikatoren tillater, funksjoner eller data som kan nås av andre deler av programmet. De private medlemmene av klassen kan kun nås av et medlem av denne klassen. Den beskyttede tilgangsspesifikatoren brukes under arv. Når du erklærer tilgangsspesifikatoren, kan den ikke endres gjennom hele programmet.

Objektene er ingenting annet enn forekomsten av klassene. Medlemmene av klassen får tilgang til objektet i samme klasse ved hjelp av en dot (.) Operatør.

 //object.mem_funct (argumenter); 
  • Objektet kan også sendes som et argument til en funksjon.
  • Pekeren til et objekt kan også opprettes.

Nøkkelforskjeller mellom struktur og klasse

  1. Hovedforskjellen mellom strukturer og klasser er at alle medlemmer av strukturen som standard er offentlige, mens alle medlemmer av klassen er som standard private.

likheter:

  • I C ++ er strukturen og klassen syntaktisk ekvivalent.
  • Både struktur og klasse kan deklarere noen av sine medlemmer privat.
  • Navnet på en struktur eller klasse kan brukes som en frittstående type.
  • Både strukturen og en klasse støtter arvsmekanismen.

Konklusjon:

Strukturen i C hadde noe av begrensningen da strukturen ikke tillater data å skjule, 'struct' datatype kunne ikke behandles som innebygde typer, strukturer støtter ikke arv. Strukturen i C ++ overkom disse begrensningene. I C ++ er klassene den utvidede versjonen av strukturen. Programmereren finner det enkelt å bruke klassen til å holde data og funksjon både og struktur bare for å holde data.

Top