Skillnaden mellan struktur och klass i C++

Nyckelskillnader mellan struktur och klass i C++

  • En struktur är en användardefinierad datatyp som grupperar logiskt relaterade dataobjekt, medan en klass är en ritning som används för att skapa specifika typer av objekt.
  • In C++, både strukturer och klasser stöder användardefinierade konstruktörer och destruktorer.
  • Den primära skillnaden är att strukturmedlemmar är offentliga som standard, medan klassmedlemmar är privata som standard.
  • Båda kan stödja arv, polymorfism och inkapsling.
  • Strukturer används ofta för enkla datagrupperping;-klasser är att föredra för komplexa beteenden och designer.
  • Minnesallokering (stack eller heap) beror på hur objekt deklareras, inte på om de är klasser eller strukturer.
  • Medlemsvariabler kan initieras direkt i både strukturer och klasser i modern C++.
Skillnaden mellan struktur och klass
Skillnaden mellan struktur och klass

Vad är strukturen i C++?

Struktur är en användardefinierad datatyp som kombinerar logiskt relaterade dataobjekt av olika datatyper som float, char, int, etc. tillsammans.

Alla strukturelementen lagras på sammanhängande minnesplatser. Strukturtypvariabel hjälper dig att lagra mer än en datapost av olika datatyper under ett namn.

Syntax för struktur i C++

Här är en syntax för struktur:

struct struct_name
{
// struct data members
}

I ovanstående syntax används nyckelordet struct. struct_name är namnet på strukturen. Strukturelementen läggs till inom lockiga hängslen. Dessa medlemmar tillhör troligen olika datatyper.

Vad är klass i C++?

Klass är en ritning eller en uppsättning instruktioner för att bygga en specifik typ av objekt. Det är ett grundläggande koncept för objektorienterad programmering som kretsar kring verkliga enheter. Klass i a programmeringsspråk bestämmer hur ett objekt ska bete sig och vad objektet ska innehålla.

Klass är också en användardefinierad datatyp som kan ha olika typer av datatyper och medlemsfunktioner inuti sin kropp.

Syntax för klass i C++

Här är en syntax för klass:

class class-name
{
// data
// functions
};

I ovanstående syntax är klassnamnet det namn som tilldelas klassen. Datan är medlem av klassen, normalt deklareras som variabler. Funktionerna här är klassfunktionerna.

Struktur vs klass in C++

Här är den största skillnaden mellan struktur och klass i C++:

Structure Klass
En struktur är en användardefinierad datatyp som grupperar relaterade variabler. En klass är en användardefinierad datatyp som fungerar som en ritning för objekt.
Deklareras med hjälp av struct nyckelord. Deklareras med hjälp av class nyckelord.
Standardåtkomstspecifikationen är allmän. Standardåtkomstspecifikationen är privat.
Stöder medlemsfunktioner, konstruktörer, destruktörer och arv precis som klasser. Stöder fullt ut OOP-funktioner som konstruktörer, destruktörer, arv, polymorfism.
Medlemmar kan vara privata eller skyddade om de uttryckligen deklareras. Samma här – åtkomstkontroll stöds fullt ut.
In C++, strukturer och klasser är nästan identiska, förutom standardåtkomstspecifikationen. Samma kapacitet; endast standardåtkomstspecifikationen skiljer sig.
Används ofta för vanliga datastrukturer (POD: Plain Old Data). Används ofta för full OOP-design.
Förekomster kallas vanligtvis "strukturvariabler" informellt. Instanser kallas objekt.

Vilken ska du välja?

Om du har ett stort minnesfotavtryck eller gillar att använda ett koncept som arv, kan du välja en klass. Å andra sidan kan strukturen användas när du har ett litet minnesfält eller footprint som behövs för att initiera standardvärden.

Sammanfatta detta inlägg med: