Forskjell mellom struktur og klasse

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 4 Kan 2024
Anonim
Jon og Håvard konkurrerer i norske dialekter | Praktisk info med Jon Almaas | discovery+ Norge
Video: Jon og Håvard konkurrerer i norske dialekter | Praktisk info med Jon Almaas | discovery+ Norge

Innhold


Både en struktur og en klasse gir en måte å lage en tilpasset datatype som kan brukes videre til å opprette forekomster. C ++ utvider rollen som struktur for å lage en klasse. Både struktur og klasse er like på alle måter, bortsett fra en forskjell som at struktur som standard har alt sitt medlem som "offentlig", og klasse som standard har alle medlemmene "private". La oss studere forskjellen mellom struktur og klasse ved å bruke sammenligningstabell.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. likheter
  5. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningStrukturKlasse
grunn~~POS=TRUNC Hvis tilgangspesifikator ikke er deklarert, er som standard alle medlemmene offentlige.Hvis tilgangspesifikator ikke er deklarert, er alle medlemmer som standard private.
Erklæring struct struct_name {
type struct_element 1;
type struct_element 2;
type struct_element 3;
.
.
.
};
klasse class_name {
data medlem;
medlemsfunksjon;
};
Forekomst Forekomst av struktur kalles strukturvariabel.Forekomst av en klasse kalles objekt.


Definisjon av struktur

En struktur er en samling av variabler av forskjellige datatyper, alle referert til med ett navn. En strukturerklæring danner en mal som brukes til å lage en forekomst av strukturen. Strukturen er erklært som følger.

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

Nøkkelordet 'struktur' definerer overfor kompilatoren at en struktur blir erklært. ‘Snammen’ representerer navnet gitt til strukturen. Strukturerklæringen avsluttes alltid med et semikolon, ettersom den blir sett på som en uttalelse. Du kan deklarere forekomstene av strukturen før den avsluttes som gjort i koden over (variabel1, variabel2), eller du kan erklære forekomsten av strukturen i hovedmenyen () ved å skrive forekomstnavnet foran med navnet på strukturen.

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

Her er S1 og S2 forekomster av strukturen. Forekomstene av strukturen kalles "strukturvariabel". Elementet som er deklarert inne i strukturen, kan nås via strukturvariablene ved bruk av prikkoperator.


// eksempel S1. struct_element1;

  • Arrayen med struktur kan også opprettes, for dette må du først deklarere en struktur og deretter erklære en matrise av den typen.

// prøve struct sname sarray;

Over setning oppretter en matrise med navnet ‘sarray’ som inneholder ti variabler, og hver variabel er organisert som definert i ‘sname’.

  • Du kan gi et strukturmedlem til en funksjon, og du kan føre en hel struktur til en funksjon.
  • Som heltaleren, matrikkelen, kan en strukturpeker også deklareres ved å plassere ‘*’ foran navnet på strukturen variabler.

// sample struct sname * S1;

Merk:

Elementene i 'struktur' lagres i et sammenhengende minneplass.

Definisjon av klasse

Klasse i OOP definerer en ny type som inneholder datamedlemmer og medlemsfunksjon, som brukes til å få tilgang til klassemedlemmene. Forekomstene av klasser kalles “objekter” som hver har samme organisasjon som en klasse. Klassen er en logisk abstraksjon, mens et objekt har en fysisk eksistens. Klassen ligner syntaktisk på strukturen. Klassen kan deklareres som følger.

class class_name {private data medlemmer og medlemsfunksjoner. access_specifier type data_member; type mem_funct (parameterliste) {. . }} objektliste;

Her er klassen et nøkkelord som erklærer overfor kompilatoren at en klasse er blitt erklært. Hovedfunksjonen i OOP er skjul av data som oppnås ved å tilby tre tilgangsspesifikatorer som er "offentlige", "private", "beskyttede". Hvis du ikke spesifiserer noen tilgangsspesifikator i klassen mens du erklærer datamedlemmer eller medlemsfunksjoner, anses alle som private som standard. Den offentlige tilgangspesifikatoren tillater, funksjoner eller data å få tilgang til av andre deler av programmet ditt. De private medlemmene av klassen kan bare få tilgang til av et medlem av klassen. Den beskyttede tilgangsspesifikatoren brukes under arv. Når du har erklært tilgangsspesifikasjonen, kan den ikke endres gjennom hele programmet.

Objektene er ikke annet enn forekomsten av klassene. Medlemmene av klassen får tilgang til objektet av samme klasse ved å bruke en prikkoperator.

//object.mem_funct (argumenter);

  • Objektet kan også sendes som et argument til en funksjon.
  • Pekeren til et objekt kan også opprettes.
  1. Hovedforskjellen mellom strukturer og klasser er at som standard er alle medlemmer av strukturen offentlige, mens som standard alle klassemedlemmene er private.

likheter:

  • I C ++ er både strukturen og klassen syntaktisk likeverdige.
  • Både struktur og klasse kan erklære noen av medlemmene som private.
  • Navnet på en struktur eller klasse kan brukes som en frittstående type.
  • Både struktur og en klasse støtter mekanismen for arv.

Konklusjon:

Strukturen i C hadde noe av begrensningen ettersom strukturen ikke tillater skjul av data, ‘struct’ datatype kunne ikke behandles som innebygde typer, strukturer støtter ikke arv. Struktur i C ++ overskrev disse begrensningene. I C ++ er klasser den utvidede versjonen av strukturen. Programmereren synes det er enkelt å bruke klassen til å holde data og fungere begge deler og strukturere bare for å holde data.