Skillnad mellan struktur och klass

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 4 Maj 2024
Anonim
What Is The Difference Between struct And class In C++?
Video: What Is The Difference Between struct And class In C++?

Innehåll


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 ++ utökar strukturens roll för att skapa en klass. Både struktur och klass är lika i alla avseenden förutom en skillnad att struktur som standard har alla sina medlemmar som "offentliga" och klass som standard har alla sina medlemmar "privata". Låt oss studera skillnaden mellan struktur och klass genom att använda jämförelsediagram.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Likheter
  5. Slutsats

Jämförelsediagram

Grund för jämförelseStruktureraKlass
Grundläggande Om åtkomstspecifikationen inte deklareras är alla medlemmar som standard offentliga.Om åtkomstspecifikationen inte deklareras är alla medlemmar som standard privata.
Deklaration struct struct_name {
typ struct_element 1;
typ struct_element 2;
typ struct_element 3;
.
.
.
};
klass klassnamn {
data medlem;
medlemsfunktion;
};
Exempel Instans av struktur kallas strukturvariabel.Instans av en klass kallas objekt.


Definition av struktur

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

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

Nyckelordet "struktur" definierar för kompilatorn att en struktur deklareras. "Sname" representerar namnet som ges till strukturen. Strukturdeklarationen avslutas alltid med ett semikolon, eftersom det betraktas som ett uttalande. Du kan förklara instanserna för strukturen innan den avslutas på samma sätt som i koden ovan (variabel1, variabel2) eller så kan du förklara instansen för struktur i huvudsak () genom att skriva instansnamnet föregående med namnet på strukturen.

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

Här är S1 och S2 strukturerna. Instanserna av strukturen kallas "strukturvariabel". Elementet som deklareras inuti strukturkroppen kan nås via strukturvariablerna genom användning av punkt (.) -Operatör.


// exempel S1. struct_element1;

  • Arrayen med struktur kan också skapas, för detta måste du först förklara en struktur och sedan förklara en matris av den typen.

// prov struct sname sarray;

Ovanstående uttalande skapar en matris med namnet 'sarray' som innehåller tio variabler, och varje variabel är organiserad enligt definitionen i 'sname'.

  • Du kan skicka en strukturmedlem till en funktion och du kan skicka en hel struktur till en funktion.
  • Liksom heltalspekaren, matrispekaren, kan en strukturpekare också deklareras genom att placera '*' framför strukturvariabelns namn.

// prov struct sname * S1;

Notera:

Elementen 'struktur' lagras på en sammanhängande minnesplats.

Definition av klass

Klass i OOP definierar en ny typ som innehåller datamedlemmar och medlemsfunktioner, som används för att få åtkomst till klassmedlemmarnas medlemmar. Instanserna av klasser kallas "objekt" som alla har samma organisation som en klass. Klassen är en logisk abstraktion, medan ett objekt har en fysisk existens. Klassen liknar syntaktiskt strukturen. Klassen kan förklaras som följer.

class class_name {privata data medlemmar och medlemsfunktioner. access_specifier typ data_member; typ mem_funct (parameterlista) {. . }} objektlista;

Här är klassen ett nyckelord som förklarar för kompilatorn att en klass har deklarerats. Huvudfunktionen i OOP är att gömma data som uppnås genom att tillhandahålla tre åtkomstspecifikationer som är "offentliga", "privata", "skyddade". Om du inte anger någon åtkomstspecifikation i klassen när du deklarerar datamedlemmar eller medlemsfunktioner, anses alla som privata. Den allmänna åtkomstspecifikationen tillåter, funktioner eller data åtkomst av andra delar av ditt program. De privata medlemmarna i klassen kan endast nås av en medlem i klassen. Den skyddade åtkomstspecifikationen tillämpas under arv. När du har angett åtkomstspecifikationen kan den inte ändras i hela programmet.

Objekten är inget annat än klasserna. Medlemmarna i klassen nås av objektet av samma klass med en punkt (.) -Operatör.

//object.mem_funct (argument);

  • Objektet kan också skickas som ett argument till en funktion.
  • Pekaren till ett objekt kan också skapas.
  1. Den största skillnaden mellan strukturer och klasser är att som standard är alla medlemmar i strukturen offentliga medan som standard alla medlemmar i klassen är privata.

Likheter:

  • I C ++ är både strukturen och klassen syntaktiskt ekvivalenta.
  • Både struktur och klass kan förklara några av sina medlemmar som privata.
  • Namnet på en struktur eller klass kan användas som en 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 att data döljer, 'strukt' datatyp kunde inte behandlas som inbyggda typer, strukturer stöder inte arv. Strukturen i C ++ övervann dessa begränsningar. I C ++ är klasser den utvidgade versionen av strukturen. Programmeraren finner det enkelt att använda klassen för att hålla data och fungera båda och strukturerar bara för att hålla data.