Rozdiel medzi štruktúrou a triedou

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 4 Smieť 2024
Anonim
Rozdiel medzi štruktúrou a triedou - Technológie
Rozdiel medzi štruktúrou a triedou - Technológie

Obsah


Štruktúra aj trieda poskytujú spôsob, ako vytvoriť prispôsobený typ údajov, ktorý je možné ďalej použiť na vytváranie inštancií. C ++ rozširuje úlohu štruktúry na vytvorenie triedy. Štruktúra aj trieda sú vo všetkých ohľadoch podobné, s výnimkou jedného rozdielu, že štruktúra predvolene obsahuje všetkých svojich členov ako „verejné“ a trieda predvolene má všetkých svojich členov „súkromné“. Poďme študovať rozdiel medzi štruktúrou a triedou pomocou porovnávacej tabuľky.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. podobnosti
  5. záver

Porovnávacia tabuľka

Základ pre porovnanieštruktúraTrieda
základné Ak špecifikátor prístupu nie je deklarovaný, v predvolenom nastavení sú všetci členovia verejní.Ak špecifikátor prístupu nie je deklarovaný, v predvolenom nastavení sú všetci členovia súkromní.
vyhlásenie struct structure_name {
typ struct_element 1;
typ struct_element 2;
typ struct_element 3;
.
.
.
};
class class_name {
dátový člen;
funkcia člena;
};
inštancie Inštancia štruktúry sa nazýva štrukturálna premenná.Inštancia triedy sa nazýva objekt.


Definícia štruktúry

Štruktúra je súbor premenných rôznych typov údajov, ktoré sa všetky označujú jedným menom. Vyhlásenie o štruktúre tvorí šablónu, ktorá sa používa na vytvorenie inštancie štruktúry. Štruktúra je deklarovaná nasledovne.

struct sname {type struct_element1; typ struct_element2; typ struct_element3; , , , } variabilná1, premenná2,. , .

Kľúčové slovo „struct“ definuje pre kompilátor, že je deklarovaná štruktúra. 'Sname' predstavuje názov priradený štruktúre. Deklarácia štruktúry je vždy ukončená bodkočiarkou, pretože sa považuje za vyhlásenie. Inštancie štruktúry môžete deklarovať pred jej ukončením podľa vyššie uvedeného kódu (premenná1, premenná2) alebo môžete deklarovať inštanciu štruktúry v main () tak, že napíšete názov inštancie, ktorej predchádza názov štruktúry.


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

Tu sú príkladmi štruktúry S1 a S2. Inštancie štruktúry sa nazývajú „štrukturálna premenná“. K prvku deklarovanému vo vnútri tela štruktúry sa dá pristupovať prostredníctvom premenných štruktúry pomocou operátora dot (.).

// príklad S1. struct_element1;

  • Môže sa tiež vytvoriť pole štruktúry, preto musíte najprv deklarovať štruktúru a potom deklarovať pole tohto typu.

// ukážka štruktúry mena sarray;

Vyššie uvedený príkaz vytvára pole s názvom „sarray“, ktoré obsahuje desať premenných a každá premenná je usporiadaná tak, ako je definované v „sname“.

  • Funkcii môžete odovzdať člena štruktúry a funkcii môžete odovzdať celú štruktúru.
  • Podobne ako celočíselný ukazovateľ, ukazovateľ poľa, ukazovateľ štruktúry možno tiež deklarovať umiestnením znaku „*“ pred názov premennej štruktúry.

// ukážka štruktúrneho mena * S1;

Poznámka:

Prvky „štruktúry“ sú uložené na súvislom mieste v pamäti.

Definícia triedy

Trieda v OOP definuje nový typ, ktorý obsahuje dátové členy a členské funkcie, ktoré sa používajú na prístup k dátovým členom triedy. Inštancie tried sa nazývajú „objekty“, z ktorých každý má rovnakú organizáciu ako trieda. Trieda je logickou abstrakciou, zatiaľ čo objekt má fyzickú existenciu. Trieda je syntakticky podobná štruktúre. Trieda môže byť vyhlásená nasledovne.

class class_name {členovia súkromných údajov a členské funkcie. access_specifier type data_member; napíšte mem_funct (zoznam parametrov) {. , }} zoznam objektov;

Tu je trieda kľúčové slovo, ktoré deklaruje kompilátoru, že trieda bola deklarovaná. Hlavnou črtou OOP je skrývanie údajov, ktoré sa dosahuje poskytnutím troch špecifikátorov prístupu, ktoré sú „verejné“, „súkromné“ a „chránené“. Ak pri deklarovaní členov údajov alebo funkcií členov nezadáte v triede žiadny špecifikátor prístupu, v predvolenom nastavení sa všetky považujú za súkromné. Špecifikátor prístupu k verejnosti umožňuje prístup k funkciám alebo údajom z iných častí programu. Prístup k súkromným členom triedy môže len člen tejto triedy. Špecifikátor chráneného prístupu sa používa počas dedenia. Akonáhle deklarujete prístupový špecifikátor, nie je ho možné v priebehu programu zmeniť.

Objekty nie sú nič iné ako inštancie tried. Členovia triedy sú prístupní objektom rovnakej triedy pomocou bodového (.) Operátora.

//object.mem_funct (argumenty);

  • Objekt môže byť tiež odovzdaný ako argument funkcie.
  • Ukazovateľ na objekt môže byť tiež vytvorený.
  1. Hlavný rozdiel medzi štruktúrami a triedami spočíva v tom, že v predvolenom nastavení sú všetci členovia štruktúry verejní, zatiaľ čo v predvolenom nastavení sú všetci členovia triedy súkromní.

podobnosti:

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

záver:

Štruktúra v C mala niektoré obmedzenia, pretože štruktúra neumožňuje skrývanie údajov, údajový typ „struct“ sa nedal spracovať ako vstavané typy, štruktúry nepodporujú dedičnosť. Štruktúra v C ++ tieto obmedzenia prekonala. V C ++ sú triedy rozšírenou verziou štruktúry. Programátor zistí, že je ľahké použiť triedu na uchovávanie údajov a fungovať ako aj štruktúru iba na uchovávanie údajov.