Rekommenderas, 2024

Redaktionen

Skillnad mellan struktur och klass

Både en struktur och en klass ger ett sätt att skapa en anpassad datatyp som kan användas vidare för att skapa instanser. C ++ expanderar strukturen för att skapa en klass. Både struktur och klass är likartade i alla avseenden utom en skillnad att strukturen som standard har all sin medlem som "allmän", och klassen har som standard alla sina medlemmar "privata". Låt oss studera skillnaden mellan struktur och klass med hjälp av jämförelsestabell.

Jämförelsediagram

Grunder för jämförelseStruktureraKlass
GrundläggandeOm åtkomstspecifikationen inte anges, är alla medlemmar som standard "offentliga".Om åtkomstspecifikationen inte anges, är alla medlemmar som standard "privata".
Deklarationstruct strukturnamn {
skriv strukturelement 1;
skriv strukturelement 2;
skriv strukturelement 3;
.
.
.
};
klass klassnamn {
data medlem;
medlemsfunktion;
};
ExempelInstans av "struktur" kallas "strukturvariabel".Instans av en "klass" kallas "objekt".

Definition av struktur

En struktur är en samling variabler av olika datatyper, alla refererade av ett namn. En strukturdeklaration utgör en mall som används för att skapa en instans av strukturen. Strukturen förklaras som följer.

 struct sname {typ struct_element1; skriv struktur_element2; skriv struktur_element3; . . . } variabel1, variabel2, . . .; 

Nyckelordet 'struct' definierar för kompilatorn att en struktur förklaras. "Sname" representerar namnet som ges till strukturen. Strukturdeklarationen avslutas alltid av en semikolon, eftersom den anses vara ett uttalande. Du kan deklarera instanserna av strukturen innan den avslutas enligt ovanstående kod (variabel1, variabel2) eller du kan deklarera förekomsten av struktur i huvudet (), genom att skriva förekomstnamnet före namnet på strukturen.

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

Här är S1 och S2 strukturens instanser. Instanserna av strukturen kallas "strukturvariabel". Elementet deklarerat inuti strukturens struktur kan nås genom strukturvariablerna genom användning av dot (.) -Operatören.

 // exempel S1. struct_element1; 
  • Strukturen av struktur kan också skapas, för det här måste du först ange en struktur och sedan deklarera en uppsättning av den typen.
 // sample strukt sname sarray [10]; 

Ovanstående uppgift skapar en matris med namnet "sarray" som innehåller tio variabler, och varje variabel är organiserad som definierad i "sname".

  • Du kan skicka en strukturmedlem till en funktion, och du kan skicka en hel struktur till en funktion.
  • Gilla, heltalspekare, matrispekare, kan en strukturpekare också deklareras genom att placera "*" på framsidan av strukturvariablerna.
 // sample struct sname * S1; 

Notera:

"Struktur" -elementen lagras i en angränsande minnesplats.

Definition av klass

Klass i OOP definierar en ny typ som innehåller data medlemmar och medlemsfunktion, som används för att få tillgång till klassens datamedlemmar. Förekomsten av klasser kallas "objekt" som var och en har samma organisation som en klass. Klassen är en logisk abstraktion, medan ett objekt har en fysisk existens. Klassen är syntaktisk lik strukturen. Klassen kan deklareras som följer.

 klass klassnamn {privata data medlemmar och medlemsfunktioner. access_specifier typ data_member; skriv mem_funct (parameterlista) {. . }} objektlista; 

Här är klassen ett nyckelord som förklarar kompilatorn att en klass har blivit förklarad. Huvudfunktionen hos OOP är dataskyddet vilket uppnås genom att tillhandahålla tre åtkomstspecifikatorer som är "offentliga", "privata", "skyddade". Om du inte anger någon åtkomstspecifikator i klassen medan du deklarerar dataländer eller medlemsfunktioner, anses alla som privata som standard. Den offentliga åtkomstspecifikaren tillåter, funktioner eller data som ska nås av andra delar av ditt program. Klassens privata medlemmar kan endast nås av en medlem av den här klassen. Den skyddade åtkomstspecifikationen tillämpas under arv. När du förklarar åtkomstspecifikationen kan den inte ändras genom hela programmet.

Objekten är ingenting annat än klassens förekomst. Gruppens medlemmar nås av föremålet för samma klass med en dot (.) -Operatör.

 //object.mem_funct (argument); 
  • Objektet kan också överföras som ett argument till en funktion.
  • Pekaren till ett objekt kan också skapas.

Viktiga skillnader mellan struktur och klass

  1. Huvudskillnaden mellan strukturer och klasser är att som standard alla medlemmar av strukturen är offentliga, medan alla medlemmar i klassen som standard är privata.

Likheter:

  • I C ++ är strukturen och klassen syntaktiskt ekvivalenta.
  • Både struktur och klass kan deklarera några av sina medlemmar privata.
  • Namnet på en struktur eller klass kan användas som fristående typ.
  • Både struktur och en klass stöder arvsmekanismen.

Slutsats:

Strukturen i C hade en del av begränsningen eftersom strukturen inte tillåter data att dölja, "struct" -datatypen kunde inte behandlas som inbyggda typer, strukturer stöder inte arv. Strukturen i C ++ överträffade dessa begränsningar. I C ++ är klasserna den expanderade versionen av strukturen. Programmeraren finner det enkelt att använda klassen för att hålla data och funktion både och struktur endast för att hålla data.

Top