Anbefalet, 2021

Redaktørens Valg

Forskel mellem struktur og klasse

Både en struktur og en klasse giver mulighed for at oprette en tilpasset datatype, der kan bruges yderligere til at oprette forekomster. C ++ udvider strukturens rolle for at oprette en klasse. Både struktur og klasse er ens i alle henseender undtagen en forskel, at strukturen som standard har hele sit medlem som "offentligt", og klasse som standard har hele sit medlem "privat". Lad os studere forskellen mellem struktur og klasse ved hjælp af sammenligningsdiagram.

Sammenligningstabel

Grundlag for sammenligningStrukturklasse
GrundlæggendeHvis adgangsspecifikationen ikke er angivet, er alle medlemmer som standard "offentlige" som standard.Hvis adgangsspecifikationen ikke er angivet, er alle medlemmer som standard "private" som standard.
Erklæringstruct strukturnavn {
skriv strukturelement 1;
skriv strukturelement 2;
skriv strukturelement 3;
.
.
.
};
klasse klassenavn {
data medlem;
medlem funktion
};
InstansInstans af 'struktur' kaldes 'strukturvariabel'.Et "klasses" tilfælde kaldes "objekt".

Definition af struktur

En struktur er en samling af variabler af forskellige datatyper, alle refereret af et navn. En strukturerklæring danner en skabelon, der bruges til at oprette en instans af strukturen. Strukturen erklæres som følger.

 struct sname {type struct_element1; skriv struct_element2; skriv strukt_element3; . . . } variable1, variable2, . . .; 

Søgeordet 'struct' definerer til kompilatoren, at en struktur erklæres. 'Sname' repræsenterer navnet på strukturen. Strukturerklæringen opsiges altid af et semikolon, da det betragtes som en erklæring. Du kan erklære strukturets forekomster inden opsigelsen som angivet i ovennævnte kode (variabel1, variabel2), eller du kan erklære struktursæt i hoved () ved at skrive forekomstnavnet forud for strukturens navn.

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

Her er S1 og S2 eksempler på strukturen. Instanserne af strukturen kaldes "strukturvariabel". Elementet erklæret inde i strukturens struktur kan fås gennem strukturvariablerne ved brug af dot (.) Operatør.

 // eksempel S1. struct_element1; 
  • Opbygningen af ​​struktur kan også oprettes, for dette skal du først oplyse en struktur og derefter erklære en matrix af den type.
 // sample strukt sname sarray [10]; 

Ovenstående sætning skaber en matrix med navnet 'sarray' indeholdende ti variable, og hver variabel er organiseret som defineret i 'sname'.

  • Du kan overføre et strukturmedlem til en funktion, og du kan overføre en hel struktur til en funktion.
  • Som heltalspeger, array pointer, kan en strukturpeger også erklæres ved at placere '*' foran navnet på strukturvariabler.
 // sample strukt sname * S1; 

Bemærk:

Elementerne 'struktur' lagres i en sammenhængende hukommelsesplacering.

Definition af klasse

Klasse i OOP definerer en ny type, der indeholder data medlemmer og medlemsfunktion, der bruges til at få adgang til data medlemmer af klassen. Eksempler på klasser kaldes "objekter", som hver har samme organisation som en klasse. Klassen er en logisk abstraktion, mens et objekt har en fysisk eksistens. Klassen er syntaktisk ligner strukturen. Klassen kan deklareres som følger.

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

Her er klassen et søgeord, der erklærer kompilatoren, at en klasse er blevet erklæret. Hovedfunktionen ved OOP er datafangst, som opnås ved at give tre adgangspesifikatorer, der er "offentlige", "private", "beskyttede". Hvis du ikke angiver nogen adgangsspecifikke i klassen, mens du erklærer data medlemmer eller medlemsfunktioner, anses alle som privat som standard. Den offentlige adgangsspecifikke gør det muligt at få adgang til funktioner, data eller data fra andre dele af dit program. De private medlemmer af klassen kan kun få adgang til et medlem af denne klasse. Den beskyttede adgangsspecifikator anvendes under arv. Når du erklærer adgangsspecifikationen, kan den ikke ændres gennem hele programmet.

Objektene er intet andet end forekomsten af ​​klasserne. Medlemmerne af klassen får adgang til objektet fra samme klasse ved hjælp af en dot (.) Operatør.

 //object.mem_funct (argumenter); 
  • Objektet kan også overføres som et argument til en funktion.
  • Markøren til et objekt kan også oprettes.

Nøgleforskelle mellem struktur og klasse

  1. Hovedforskellen mellem strukturer og klasser er, at alle medlemmer af strukturen som standard er offentlige, mens alle medlemmer af klassen som standard er private.

ligheder:

  • I C ++ er strukturen og klassen syntaktisk ækvivalent.
  • Både struktur og klasse kan erklære nogle af deres medlemmer privat.
  • Navnet på en struktur eller klasse kan bruges som en selvstændig type.
  • Både struktur og klasse understøtter arvsmekanismen.

Konklusion:

Strukturen i C havde en del af begrænsningen, da strukturen ikke tillader data gemt, 'struct' datatype kunne ikke behandles som indbyggede typer, strukturer understøtter ikke arv. Strukturen i C ++ overgik disse begrænsninger. I C ++ er klasser den udvidede version af strukturen. Programmereren finder det nemt at bruge klassen til at holde data og fungere begge og strukturere kun for at holde data.

Top