Aanbevolen, 2024

Editor'S Choice

Verschil tussen structuur en klasse

Zowel een structuur als een klasse biedt een manier om een ​​aangepast gegevenstype te maken dat verder kan worden gebruikt om exemplaren te maken. C ++ breidt de rol van structuur uit om een ​​klasse te maken. Zowel structuur als klasse zijn in alle opzichten vergelijkbaar, met uitzondering van één verschil dat de structuur standaard alle leden als "openbaar" heeft en klasse standaard alle leden "privé" heeft. Laten we het verschil tussen structuur en klasse bestuderen met behulp van een vergelijkingstabel.

Vergelijkingstabel

Basis voor vergelijkingStructuurKlasse
basis-Als toegangsspecificatie niet is gedeclareerd, zijn standaard alle leden 'openbaar'.Als toegangsspecificatie niet is gedeclareerd, zijn standaard alle leden 'privé'.
Verklaringstruct structure_name {
type struct_element 1;
type struct_element 2;
typ struct_element 3;
.
.
.
};
class class_name {
data lid;
lid functie;
};
AanlegInstantie van 'structuur' wordt 'structuurvariabele' genoemd.Instantie van een 'klasse' wordt 'object' genoemd.

Definitie van structuur

Een structuur is een verzameling variabelen van ongelijke gegevenstypen, allemaal aangeduid met één naam. Een structuurverklaring vormt een sjabloon die wordt gebruikt om een ​​exemplaar van de structuur te maken. De structuur wordt als volgt verklaard.

 struct sname {type struct_element1; type struct_element2; type struct_element3; . . . } variable1, variable2, . . .; 

Het sleutelwoord 'struct' definieert de compiler dat een structuur wordt gedeclareerd. De 'sname' staat voor de naam die aan de structuur wordt gegeven. De structuurverklaring wordt altijd beëindigd door een puntkomma, omdat deze wordt beschouwd als een verklaring. U kunt de instances van de structuur vóór de beëindiging declareren zoals in de bovenstaande code (variable1, variable2) of u kunt de instantie van de structuur in main () declareren, door de instantienaam te schrijven, voorafgegaan door de naam van de structuur.

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

Hier zijn S1 en S2 de instanties van de structuur. De exemplaren van de structuur worden "structuurvariabele" genoemd. Het element gedeclareerd in het hoofdgedeelte van de structuur is toegankelijk via de structuurvariabelen via het gebruik van de punt (.) -Operator.

 // voorbeeld S1. struct_element1; 
  • De array van structuur kan ook worden gemaakt, hiervoor moet u eerst een structuur declareren en vervolgens een array van dat type declareren.
 // sample struct sname sarray [10]; 

Bovenstaande instructie maakt een array met de naam 'sarray' met tien variabelen en elke variabele is georganiseerd zoals gedefinieerd in 'sname'.

  • U kunt een structuurlid aan een functie doorgeven en u kunt een volledige structuur aan een functie doorgeven.
  • Zoals, integer pointer, array pointer, kan een structuuraanwijzer ook worden gedeclareerd door '*' vooraan in de naam van de structuurvariabelen te plaatsen.
 // sample struct sname * S1; 

Notitie:

De 'structuur'-elementen worden opgeslagen op een aangrenzende geheugenlocatie.

Definitie van klasse

Klasse in OOP definieert een nieuw type dat gegevensleden en ledenfunctie bevat, die worden gebruikt om toegang te krijgen tot de gegevensleden van de klasse. De exemplaren van klassen worden "objecten" genoemd die elk dezelfde organisatie als een klasse hebben. De klasse is een logische abstractie, terwijl een object een fysiek bestaan ​​heeft. De klasse is syntactisch vergelijkbaar met de structuur. De klasse kan als volgt worden verklaard.

 class class_name {persoonlijke gegevens leden en ledenfuncties. access_specifier type data_member; type mem_funct (parameterlijst) {. . }} objectenlijst; 

Hier is de klasse een sleutelwoord dat aan de compiler verklaart dat een klasse is gedeclareerd. Het belangrijkste kenmerk van OOP is gegevensverbergen, wat wordt bereikt door drie toegangsspecificaties te bieden die "openbaar", "privé", "beschermd" zijn. Als u geen toegangsspecificatie opgeeft in de klasse bij het declareren van gegevensleden of lidfuncties, worden ze standaard als privé beschouwd. De openbare toegangsspecificatie maakt het mogelijk dat functies of gegevens worden gebruikt door andere delen van uw programma. De privé-leden van de klas zijn alleen toegankelijk voor een lid van die klasse. De beschermde toegangsspecificatie wordt toegepast tijdens overerving. Nadat u de toegangsspecificatie hebt uitgesproken, kan deze gedurende het hele programma niet worden gewijzigd.

De objecten zijn niets anders dan de instantie van de klassen. De leden van de klasse worden benaderd door het object van dezelfde klasse met behulp van een punt (.) -Operator.

 //object.mem_funct (argumenten); 
  • Het object kan ook als argument voor een functie worden doorgegeven.
  • De aanwijzer naar een object kan ook worden gemaakt.

Belangrijkste verschillen tussen structuur en klasse

  1. Het belangrijkste verschil tussen structuren en klassen is dat standaard alle leden van de structuur openbaar zijn, terwijl standaard alle leden van de klasse privé zijn.

overeenkomsten:

  • In C ++ zijn zowel de structuur als de klasse syntactisch equivalent.
  • Zowel structuur als klasse kunnen sommige van hun leden privé verklaren.
  • De naam van een structuur of klasse kan als een op zichzelf staand type worden gebruikt.
  • Zowel de structuur als een klasse ondersteunen het mechanisme van overerving.

Conclusie:

De structuur in C had een deel van de beperking omdat de structuur geen gegevensverbergingen toestaat, het 'struct' datatype niet kon worden behandeld als ingebouwde typen, structuren geen overerving ondersteunen. Structuur in C ++ heeft deze beperkingen overwonnen. In C ++ zijn klassen de uitgebreide versie van de structuur. De programmeur vindt het gemakkelijk om de klasse te gebruiken om gegevens en functies zowel te behouden als alleen te structureren om gegevens vast te houden.

Top