
Porovnávacia tabuľka
Základ pre porovnanie | štruktúra | Trieda |
---|---|---|
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štancie | Inš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
- 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.