Rozdíl mezi strukturou a třídou

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 4 Smět 2024
Anonim
Rozdíl mezi strukturou a třídou - Technologie
Rozdíl mezi strukturou a třídou - Technologie

Obsah


Struktura i třída poskytují způsob, jak vytvořit přizpůsobený datový typ, který lze dále použít k vytváření instancí. C ++ rozšiřuje roli struktury a vytváří třídu. Struktura i třída jsou ve všech ohledech podobné, s výjimkou jednoho rozdílu, že struktura ve výchozím nastavení má všechny své členy jako „veřejné“ a třída ve výchozím nastavení má všechny své členy „soukromé“. Pojďme studovat rozdíl mezi strukturou a třídou pomocí srovnávací tabulky.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Podobnosti
  5. Závěr

Srovnávací tabulka

Základ pro srovnáníStrukturaTřída
Základní Pokud specifikátor přístupu není deklarován, ve výchozím nastavení jsou všichni členové veřejní.Pokud není specifikován přístup, ve výchozím nastavení jsou všichni členové soukromí.
Prohlášení struct structure_name {
napište struct_element 1;
napište struct_element 2;
napište struct_element 3;
.
.
.
};
class class_name {
datový člen;
funkce člena;
};
Instance Instance struktury se nazývá strukturní proměnná.Instance třídy se nazývá objekt.


Definice struktury

Struktura je soubor proměnných odlišných datových typů, na které se všechny odkazuje jedním jménem. Deklarace struktury tvoří šablonu, která se používá k vytvoření instance struktury. Struktura je deklarována následovně.

struct sname {type struct_element1; typ struct_element2; typ struct_element3; . . . } proměnná1, proměnná2,. . ;;

Klíčové slovo „struct“ definuje kompilátoru, že je deklarována struktura. 'Sname' představuje jméno dané struktuře. Deklarace struktury je vždy ukončena středníkem, protože se považuje za příkaz. Můžete deklarovat instance struktury před jejím ukončením, jak je to provedeno ve výše uvedeném kódu (proměnná1, proměnná2), nebo můžete deklarovat instanci struktury v main () tak, že napíšete název instance, kterému předchází název struktury.


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

Zde S1 a S2 jsou příklady struktury. Příklady struktury se nazývají „strukturní proměnná“. K prvku deklarovanému uvnitř těla struktury lze přistupovat prostřednictvím proměnných struktury pomocí tečkového (.) Operátoru.

// příklad S1. struct_element1;

  • Pole struktury lze také vytvořit, proto musíte nejprve deklarovat strukturu a poté deklarovat pole tohoto typu.

// sample struct sname sarray;

Výše uvedený příkaz vytvoří pole s názvem 'sarray' obsahujícím deset proměnných a každá proměnná je uspořádána podle definice v 'sname'.

  • Funkci můžete předat člena struktury a funkci předat celou strukturu.
  • Jako ukazatel celé číslo, ukazatel pole, ukazatel struktury lze také deklarovat umístěním znaku „*“ na začátek názvu proměnných struktury.

// ukázkový název struktury * S1;

Poznámka:

Prvky „struktury“ jsou uloženy na souvislém paměťovém místě.

Definice třídy

Třída v OOP definuje nový typ, který obsahuje datové členy a členské funkce, které se používají pro přístup k datovým členům třídy. Instance tříd se nazývají „objekty“, z nichž každý má stejnou organizaci jako třída. Třída je logickou abstrakcí, zatímco objekt má fyzickou existenci. Třída je syntakticky podobná struktuře. Třída může být deklarována následovně.

class class_name {členy soukromých dat a členské funkce. access_specifier type data_member; napište mem_funct (seznam parametrů) {. . }} seznam objektů;

Tady je třída klíčové slovo, které deklaruje kompilátoru, že třída byla deklarována. Hlavním rysem OOP je skrývání dat, které je dosaženo poskytnutím tří specifikátorů přístupu, které jsou „veřejné“, „soukromé“ a „chráněné“. Pokud při deklarování datových členů nebo funkcí členů nezadáte ve třídě žádný specifikátor přístupu, budou ve výchozím nastavení všechny považovány za soukromé. Specifikátor veřejného přístupu umožňuje přístup k funkcím nebo datům jiných částí vašeho programu. K soukromým členům třídy může přistupovat pouze člen této třídy. Specifikátor chráněného přístupu je použit během dědičnosti. Jakmile deklarujete přístupový specifikátor, nelze jej v průběhu programu změnit.

Objekty nejsou ničím jiným než instancí tříd. Členové třídy jsou zpřístupňováni objektem stejné třídy pomocí operátoru tečka (.).

//object.mem_funct (argumenty);

  • Objekt lze také předat jako argument funkce.
  • Ukazatel na objekt lze také vytvořit.
  1. Hlavní rozdíl mezi strukturami a třídami je, že ve výchozím nastavení jsou všichni členové struktury veřejní, zatímco ve výchozím nastavení jsou všichni členové třídy soukromí.

Podobnosti:

  • V C ++ jsou struktura i třída syntakticky ekvivalentní.
  • Struktura i třída mohou některé ze svých členů prohlásit za soukromé.
  • Název struktury nebo třídy lze použít jako samostatný typ.
  • Struktura i třída podporují mechanismus dědičnosti.

Závěr:

Struktura v C měla některá omezení, protože struktura neumožňuje skrývání dat, datový typ „struct“ nemohl být zpracován jako vestavěné typy, struktury nepodporují dědičnost. Struktura v C ++ překonala tato omezení. V C ++ jsou třídy rozšířenou verzí struktury. Programátor považuje za snadné používat třídu k uchovávání dat a fungovat jak a strukturu pouze k uchovávání dat.