Forskellen mellem struktur og klasse i C++

Nøgleforskelle mellem struktur og klasse i C++

  • En struktur er en brugerdefineret datatype, der grupperer logisk relaterede dataelementer, hvorimod en klasse er en blueprint, der bruges til at skabe bestemte typer objekter.
  • In C++, understøtter både strukturer og klasser brugerdefinerede konstruktører og destruktorer.
  • Den primære forskel er, at strukturmedlemmer som standard er offentlige, mens klassemedlemmer som standard er private.
  • Begge kan understøtte arv, polymorfi og indkapsling.
  • Strukturer bruges ofte til simpel datagruppering; klasser foretrækkes til kompleks adfærd og design.
  • Hukommelsesallokering (stak eller heap) afhænger af, hvordan objekter erklæres, ikke af om de er klasser eller strukturer.
  • Medlemsvariabler kan initialiseres direkte inde i både strukturer og klasser i moderne C++.
Forskellen mellem struktur og klasse
Forskellen mellem struktur og klasse

Hvad er strukturen i C++?

Struktur er en brugerdefineret datatype, der kombinerer logisk relaterede dataelementer af forskellige datatyper som float, char, int osv. sammen.

Alle strukturelementerne er lagret på sammenhængende hukommelsessteder. Strukturtypevariabel hjælper dig med at gemme mere end ét dataelement af forskellige datatyper under ét navn.

Syntaks for struktur i C++

Her er en syntaks for struktur:

struct struct_name
{
// struct data members
}

I ovenstående syntaks bruges nøgleordet struct. struct_name er navnet på strukturen. Strukturelementerne tilføjes inden for krøllede seler. Disse medlemmer tilhører sandsynligvis forskellige datatyper.

Hvad er klasse i C++?

Klasse er en plan eller et sæt instruktioner til at bygge en bestemt type objekt. Det er et grundlæggende koncept for objektorienteret programmering, som kredser om virkelige entiteter. Klasse i a programmeringssprog bestemmer, hvordan et objekt vil opføre sig, og hvad objektet skal indeholde.

Klasse er også en brugerdefineret datatype, som kan have forskellige slags datatyper og medlemsfunktioner inde i sin krop.

Syntaks for klasse i C++

Her er en syntaks for klasse:

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

I ovenstående syntaks er klassenavnet det navn, der er tildelt klassen. Dataene er medlem af klassen, normalt erklæret som variabler. Funktionerne her er klassefunktionerne.

Struktur vs klasse i C++

Her er hovedforskellen mellem struktur og klasse i C++:

Struktur Klasse
En struktur er en brugerdefineret datatype, der grupperer relaterede variabler. En klasse er en brugerdefineret datatype, der fungerer som en blueprint for objekter.
Erklæret ved hjælp af struct nøgleord. Erklæret ved hjælp af class nøgleord.
Standardadgangsspecifikationen er offentlige. Standardadgangsspecifikationen er private.
Understøtter medlemsfunktioner, konstruktører, destruktorer og arv ligesom klasser. Understøtter fuldt ud OOP-funktioner som konstruktører, destruktorer, arv, polymorfi.
Medlemmer kan være private eller beskyttede, hvis de udtrykkeligt erklæres. Samme her – adgangskontrol er fuldt understøttet.
In C++, strukturer og klasser er næsten identiske, bortset fra standardadgangsspecifikationen. Samme kapaciteter; kun standardadgangsspecifikationen er forskellig.
Bruges ofte til almindelige datastrukturer (POD: Plain Old Data). Bruges ofte til fuldt OOP-design.
Forekomster omtales typisk som "strukturvariabler" uformelt. Forekomster kaldes objekter.

Hvilken skal du vælge?

Hvis du har et stort hukommelsesfodaftryk eller kan lide at bruge et begreb som arv, så kan du vælge en klasse. På den anden side kan strukturen bruges, når du har et lille hukommelsesfelt eller fodaftryk, der er nødvendigt for at initialisere standardværdier.

Opsummer dette indlæg med: