Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi štruktúrou a triedou

Štruktúra aj trieda poskytujú spôsob vytvorenia prispôsobeného dátového typu, ktorý sa dá ďalej použiť na vytvorenie inštancií. C ++ rozširuje úlohu štruktúry pri vytváraní triedy. Štruktúra a trieda sú vo všetkých ohľadoch podobné, s výnimkou jedného rozdielu, že štruktúra štandardne má všetkých svojich členov ako "verejné" a trieda má predvolene všetok svoj člen "súkromný". Pozrite sa na rozdiel medzi štruktúrou a triedou pomocou porovnávacieho grafu.

Porovnávacia tabuľka

Základ pre porovnanieštruktúraTrieda
základnéAk nie je deklarant prístupu deklarovaný, štandardne všetci členovia sú "verejní".Ak nie je deklarant prístupu deklarovaný, štandardne všetci členovia sú "súkromní".
vyhlásenieštrukt názov_struktúry {
typu struct_element 1;
typ struct_element 2;
typ struct_element 3;
,
,
,
};
class class_name {
člen dát;
členská funkcia;
};
inštancieInštancia "štruktúry" sa nazýva "premenná štruktúry".Inštancia "triedy" sa nazýva "objekt".

Definícia štruktúry

Štruktúra je kolekcia premenných odlišných typov údajov, všetko odkazuje na jedno meno. Štruktúra vyhlásenia tvorí šablónu, ktorá sa používa na vytvorenie inštancie štruktúry. Štruktúra je deklarovaná nasledovne.

 štrukt sname {typ struct_element1; typu struct_element2; typu struct_element3;, , , } variable1, variable2, ., . 

Kľúčové slovo "struct" definuje prekladačovi, že sa deklaruje štruktúra. "Sname" predstavuje názov daný štruktúre. Deklarácia štruktúry je vždy ukončená bodkočiarkou, pretože sa považuje za vyhlásenie. Môžete deklarovať inštancie štruktúry pred jej ukončením ako vykonané vo vyššie uvedenom kóde (premenná1, premenná2) alebo môžete deklarovať inštanciu štruktúry v hlavnom (), napísaním názvu inštancie, ktorému predchádza názov štruktúry.

 // príklad. hlavné () {sname S1, S2; } 

Tu S1 a S2 sú príklady štruktúry. Inštancie štruktúry sa nazývajú "premenná štruktúry". Prvok deklarovaný vo vnútri štruktúry tela je prístupný cez premenné štruktúry pomocou dot (.) Operátora.

 // príklad S1. struct_element1; 
  • Môžete tiež vytvoriť pole štruktúry, preto musíte najprv deklarovať štruktúru a potom deklarovať pole tohto typu.
 // sample štruktúra sname sarray [10]; 

Vyššie uvedené vyhlásenie vytvára pole s názvom "sarray" obsahujúce desať premenných a každá premenná je usporiadaná tak, ako je definované v "sname".

  • Môžete prejsť člena štruktúry na funkciu a môžete preniesť celú štruktúru na funkciu.
  • Rovnako ako celočíselný ukazovateľ, ukazovateľ poľa, ukazovateľ štruktúry možno tiež deklarovať umiestnením znaku '*' na prednej strane mena štruktúry premenných.
 // sample struct sname * S1; 

Poznámka:

Prvky "štruktúry" sú uložené v susednom pamäťovom mieste.

Definícia triedy

Trieda v OOP definuje nový typ, ktorý obsahuje dátové členy a funkciu členov, ktoré sa používajú na prístup k údajovým členom triedy. Inštancie tried sa nazývajú "objekty", z ktorých každá má rovnakú organizáciu ako trieda. Trieda je logická abstrakcia, zatiaľ čo objekt má fyzickú existenciu. Trieda je syntakticky podobná štruktúre. Triedu možno deklarovať nasledovne.

 class_name_name {súkromné ​​dátové členy a členské funkcie. typ prístupu_specifikátora data_member; typu mem_funct (zoznam parametrov) {., }} zoznam objektov; 

Tu je trieda kľúčové slovo, ktoré deklaruje prekladateľovi, že bola deklarovaná trieda. Hlavným prvkom OOP je skrytie údajov, ktoré sa dosahuje poskytnutím troch prístupových špecifikátorov, ktoré sú "verejné", "súkromné", "chránené". Ak v rámci triedy nešpecifikujete žiadny špecifikátor prístupu pri deklarovaní dátových členov alebo funkcií členov, štandardne sú všetky považované za súkromné. Špecifikátor verejného prístupu umožňuje prístup k funkciám alebo údajom v iných častiach vášho programu. Súkromným členom triedy môže pristupovať iba člen tejto triedy. Zadaný špecifikátor prístupu sa použije počas dedenia. Keď deklarujete špecifikátor prístupu, nemôže byť v celom programe zmenený.

Objekty sú len inštanciou tried. Členovia triedy pristupujú k objektu tej istej triedy pomocou operátora dot (.).

 //object.mem_funct (argumenty); 
  • Objekt môže byť tiež prenesený ako argument pre funkciu.
  • Môžete tiež vytvoriť ukazovateľ na objekt.

Kľúčové rozdiely medzi štruktúrou a triedou

  1. Hlavným rozdielom medzi štruktúrami a triedami je, že štandardne všetok člen štruktúry je verejný, zatiaľ čo všetci členovia triedy sú štandardne súkromní.

podobnosti:

  • V C ++ sú štruktúra aj trieda syntakticky ekvivalentné.
  • Štruktúra i trieda môžu vyhlásiť niektorých svojich členov za súkromné.
  • Názov štruktúry alebo triedy môže byť použitý ako samostatný typ.
  • Štruktúra aj trieda podporujú mechanizmus dedičnosti.

záver:

Štruktúra v jazyku C mala niektoré obmedzenia, pretože štruktúra neumožňuje skrytie dát, datový typ 'struct' sa nedá považovať za zabudované typy, štruktúry nepodporujú dedičnosť. Štruktúra v jazyku C prekonala tieto obmedzenia. V C ++ sú triedy rozšírená verzia štruktúry. Programátor sa domnieva, že je jednoduché používať triedu na uchovávanie údajov a funkciu oboch a štruktúru iba na uchovávanie údajov.

Top