Forskel mellem struktur og klasse

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 4 Kan 2024
Anonim
Diese Schriftgestaltung bringt dich auf ein neues Level / Schnitzen lernen / Bildhauerschrift
Video.: Diese Schriftgestaltung bringt dich auf ein neues Level / Schnitzen lernen / Bildhauerschrift

Indhold


Både en struktur og en klasse giver en måde at oprette en tilpasset datatype, der kan bruges yderligere til at oprette forekomster. C ++ udvider strukturens rolle for at skabe en klasse. Både struktur og klasse ligner i alle henseender bortset fra en forskel, at struktur som standard har alt sit medlem som "offentligt", og klasse som standard har alle sine medlemmer "private". Lad os undersøge forskellen mellem struktur og klasse ved hjælp af sammenligningstabel.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. ligheder
  5. Konklusion

Sammenligningstabel

Grundlag for sammenligningStrukturklasse
Grundlæggende Hvis adgangsspecifikationen ikke er erklæret, er som standard alle medlemmer offentlige.Hvis adgangsspecifikationen ikke er deklareret, er alle medlemmer som standard private.
Erklæring struct struktur_navn {
type struct_element 1;
type struktur_element 2;
type struct_element 3;
.
.
.
};
klasse klassens navn {
data medlem;
medlemsfunktion;
};
Instans Forekomst af struktur kaldes strukturvariabel.Forekomst af en klasse kaldes objekt.


Definition af struktur

En struktur er en samling af variabler af forskellige datatyper, der alle henvises til med ét navn. En strukturerklæring danner en skabelon, der bruges til at oprette en forekomst af strukturen. Strukturen er erklæret som følger.

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

Nøgleordet 'struktur' definerer overfor kompilatoren, at en struktur erklæres. 'Sname' repræsenterer det navn, der er givet til strukturen. Strukturerklæringen afsluttes altid med en semikolon, da den betragtes som en erklæring. Du kan deklarere forekomsterne af strukturen inden dens ophør som beskrevet i ovenstående kode (variabel1, variabel2), eller du kan erklære forekomsten af ​​struktur i hovedmenuen () ved at skrive instansnavnet forud for strukturenavnet.

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

Her er S1 og S2 forekomster af strukturen. Forekomsterne af strukturen kaldes "strukturvariabel". Elementet, der er erklæret inde i strukturen, kan fås via strukturvariablerne ved brug af dot (.) -Operatøren.


// eksempel S1. struct_element1;

  • Arrayet med struktur kan også oprettes, for dette skal du først erklære en struktur og derefter erklære en matrix af den type.

// prøve struct sname sarray;

Ovenstående sætning opretter en matrix med navnet 'sarray', der indeholder ti variabler, og hver variabel er organiseret som defineret i 'sname'.

  • Du kan videregive et strukturmedlem til en funktion, og du kan videregive en hel struktur til en funktion.
  • Ligesom heltal-pointer, array-pointer, kan en strukturpointer også erklæres ved at placere '*' foran på navnet på strukturvariabler.

// prøve struct sname * S1;

Bemærk:

Elementerne 'struktur' gemmes i et sammenhængende hukommelsessted.

Definition af klasse

Klasse i OOP definerer en ny type, der indeholder datamedlemmer og medlemsfunktion, der bruges til at få adgang til klassens datamedlemmer. Forekomsterne af klasser kaldes ”objekter”, der hver har den samme organisation som en klasse. Klassen er en logisk abstraktion, mens et objekt har en fysisk eksistens. Klassen ligner syntaktisk strukturen. Klassen kan erklæres som følger.

class class_name {private data medlemmer og medlemsfunktioner. access_specifier type data_medlem; type mem_funct (parameterliste) {. . }} objektliste;

Her er klassen et nøgleord, der erklærer overfor compileren, at en klasse er blevet erklæret. Hovedfunktionen i OOP er skjult data, som opnås ved at tilvejebringe tre adgangsspecifikationer, der er “offentlige”, “private”, “beskyttede”. Hvis du ikke specificerer nogen adgangsspecifikation i klassen, mens du erklærer datamedlemmer eller medlemsfunktioner, betragtes alle som standard som private. Den offentlige adgangsspecifikation tillader, funktioner eller data at få adgang til af andre dele af dit program. Klassens private medlemmer kan kun få adgang til af et medlem af denne klasse. Den beskyttede adgangsspecifikation anvendes under arv. Når du har erklæret adgangsspecifikationen, kan den ikke ændres i hele programmet.

Objekterne er intet andet end forekomsten af ​​klasser. Medlemmerne af klassen får adgang til objektet af den samme klasse ved hjælp af en dot (.) -Operator.

//object.mem_funct (argumenter);

  • Objektet kan også overføres som et argument til en funktion.
  • Markøren til et objekt kan også oprettes.
  1. Den største forskel mellem strukturer og klasser er, at som standard er alle medlemmer af strukturen offentlige, mens som standard alle klassens medlemmer er private.

ligheder:

  • I C ++ er både struktur og klasse syntaktisk ækvivalente.
  • Både struktur og klasse kan erklære nogle af deres medlemmer som private.
  • Navnet på en struktur eller klasse kan bruges som en selvstændig type.
  • Både struktur og en klasse understøtter arvemekanismen.

Konklusion:

Strukturen i C havde nogle af begrænsningerne, da strukturen ikke tillader data skjul, 'strukt' datatype kunne ikke behandles som indbyggede typer, strukturer understøtter ikke arv. Struktur i C ++ overskred disse begrænsninger. I C ++ er klasser den udvidede version af strukturen. Programmereren finder det let at bruge klassen til at opbevare data og fungere begge dele og kun strukturere for at opbevare data.