Co je struktura v C ++?
STRUCT je C ++ datová struktura, která může být použita k uložení společně prvky různých typů dat. V C ++ je struktura uživatelem definovaný datový typ. Struktura vytváří datový typ pro seskupování položek různých datových typů pod jeden datový typ.
Například:
Předpokládejme, že potřebujete ukládat informace o někom, jeho jménu, občanství a věku. Můžete vytvořit proměnné, jako je jméno, občanství a věk, aby se data ukládala samostatně.
Možná však budete muset v budoucnu ukládat informace o mnoha osobách. To znamená, že budou vytvořeny proměnné pro různé jednotlivce. Například jméno1, občanství1, věk1 atd. Abyste tomu zabránili, je lepší vytvořit strukturu.
V tomto výukovém programu C ++ se naučíte:
- Co je struktura v C ++?
- Kdy použít strukturu?
- Inicializace struktury C ++
- Vytváření strukturních instancí
- Přístup ke členům struktury
- Ukazatele na strukturu
- Struktura jako argument funkce
- Omezení struktury C ++
Kdy použít strukturu?
Tady je několik důvodů, proč používat strukturu v C ++.
- Použijte strukturu, když potřebujete ukládat prvky různých datových typů pod jeden datový typ.
- C ++ struktury jsou spíše hodnotovým typem než referenčním typem. Pokud nemáte v úmyslu upravit data po vytvoření, použijte strukturu.
Inicializace struktury C ++
K vytvoření struktury C ++ používáme klíčové slovo struct následované identifikátorem. Identifikátor se stává názvem struktury. Zde je syntaxe pro vytvoření struktury C ++:
Syntax:
struct struct_name{// struct members}
Ve výše uvedené syntaxi jsme použili klíčové slovo struct. Název_struktury je název struktury.
Členové struktury se přidávají do složených závorek. Tito členové pravděpodobně patří do různých datových typů.
Například:
struct Person{char name[30];int citizenship;int age;}
Ve výše uvedeném příkladu je osoba struktura se třemi členy. Mezi členy patří jméno, občanství a věk. Jeden člen je datového typu char, zatímco zbývající 2 jsou celá čísla, když je vytvořena struktura, paměť není přidělena. Paměť je přidělena až po přidání proměnné do struktury.
Vytváření strukturních instancí
Ve výše uvedeném příkladu jsme vytvořili strukturu s názvem Person. Můžeme vytvořit strukturní proměnnou následovně:
Person p;
P je strukturní proměnná typu Person. Tuto proměnnou můžeme použít pro přístup ke členům struktury.
Přístup ke členům struktury
Pro přístup ke členům struktury používáme instanci struktury a operátor tečka (.). Například pro přístup k věku člena struktury Person:
p.age = 27;
K věku člena struktury Person jsme přistupovali pomocí instance struktury, str. Poté jsme nastavili hodnotu věku člena na 27.
Příklad 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Výstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Zahrňte soubor záhlaví iostream do našeho programu, abyste mohli používat funkce v něm definované.
- Chcete-li používat své třídy, aniž byste jej volali, zahrňte standardní obor názvů.
- Vytvořte strukturu s názvem Osoba.
- Začátek těla struktury.
- Vytvořte člena struktury s názvem občanství typu integer.
- Vytvořte člena struktury s názvem age of type integer.
- Konec těla struktury.
- Zavolejte funkci main (). Logika programu by měla být přidána do těla této funkce.
- Vytvořte instanci struktury Person a pojmenujte ji str.
- Nastavit hodnotu občanství člena struktury na 1.
- Nastavte hodnotu věku člena struktury na 27.
- Vytiskněte hodnotu občanství člena struktury na konzoli spolu s dalším textem.
- Vytiskněte hodnotu věku člena struktury na konzole spolu s dalším textem.
- Pokud program běží úspěšně, měl by vrátit hodnotu.
- Konec funkce main ().
Ukazatele na strukturu
Je možné vytvořit ukazatel, který ukazuje na strukturu. Je to podobné tomu, jak se vytvářejí ukazatele ukazující na nativní datové typy jako int, float, double atd. Všimněte si, že ukazatel v C ++ uloží umístění paměti.
Příklad 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Výstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Zahrňte soubor záhlaví iostream do našeho programu, abyste mohli využívat jeho funkce.
- Zahrňte do našeho programu standardní obor názvů, abyste mohli používat jeho třídy, aniž byste jej volali.
- Vytvořte strukturu s názvem Délka.
- Začátek těla struktury Délka.
- Vytvořte člena struktury s názvem metry celočíselného datového typu.
- Vytvořte člena struktury s názvem centimetry typu integer.
- Konec těla struktury Délka.
- Zavolejte funkci main ().
- Začátek těla funkce main ().
- Vytvořte proměnnou ukazatele * ptr a normální proměnnou l typu Délka.
- Uložte adresu proměnné l do naší proměnné ukazatele.
- Zobrazte zprávu na konzole a požádejte uživatele o zadání hodnoty pro proměnné měřiče.
- Přečtěte si hodnotu zadanou uživatelem pomocí klávesnice. Měřiče členské funkce jsou zde přístupné pomocí proměnné ukazatele.
- Zobrazte zprávu na konzole a požádejte uživatele, aby zadal hodnotu pro různé centimetry.
- Přečtěte si hodnotu zadanou uživatelem pomocí klávesnice. K centimetrům členské funkce se zde přistupuje pomocí proměnné ukazatele.
- Zobrazit hodnoty načtené od uživatele na konzole spolu s jiným textem.
- Po úspěšném provedení musí program vrátit hodnotu.
- Konec těla funkce main ().
Struktura jako argument funkce
Můžete předat strukturu funkci jako argument. To se děje stejným způsobem jako předání normálního argumentu. Proměnné struktury lze také předat funkci. Dobrým příkladem je, když potřebujete zobrazit hodnoty členů struktury. Ukážeme to:
Příklad 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Výstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Zahrňte soubor záhlaví iostream do našeho souboru. Poté budeme používat jeho funkce bez chyb.
- Chcete-li používat jeho třídy, zahrňte do našeho programu standardní obor názvů. Nebudeme muset volat obor názvů, abychom mohli používat jeho třídy.
- Vytvořte strukturu s názvem Osoba.
- Začátek těla struktury Osoba.
- Vytvořte člena struktury Person. Člen má název občanství a je typu celé číslo.
- Vytvořte člena struktury Person. Člen má název age a je typu integer.
- Konec těla struktury Osoba.
- Vytvořte funkci, která jako argument vezme instanci struktury Person, p.
- Zavolejte hlavní funkci. {Označuje začátek těla funkce main ().
- Vytvořte instanci struktury Person a pojmenujte ji str.
- Přistupujte k proměnné člena strukturované občanství pomocí instance struktury p a přiřaďte jí hodnotu 1.
- Přistupujte k proměnné age člena struktury pomocí instance struktury p a přiřaďte jí hodnotu 27.
- Zavolejte funkci a předejte jí instanci struktury Person, p, jako argument.
- Funkce musí po úspěšném provedení vrátit hodnotu.
- Konec těla funkce main ().
- Vytvořte tělo funkce.
- Začátek těla funkce.
- Získejte přístup k hodnotě občanství člena struktury a vytiskněte ji na konzole spolu s dalším textem.
- Přístup k hodnotě věku člena struktury a její tisk na konzole spolu s dalším textem.
- Konec těla funkce.
Omezení struktury C ++
Omezení struktur jsou následující:
- S datovým typem struktury nelze zacházet jako s integrovanými datovými typy.
- Operátory jako + - a další nelze použít na strukturní proměnné.
- Struktury nepodporují skrývání dat. K členům struktury lze přistupovat jakoukoli funkcí bez ohledu na její rozsah.
- Statické členy nelze deklarovat uvnitř těla struktury.
- Konstruktory nelze vytvořit uvnitř struktury.
Souhrn:
- Struktura je datová struktura, která ukládá datové prvky patřící k různým typům.
- Zatímco pole ukládá datové prvky podobného typu, struktura ukládá datové prvky různých typů.
- Struktura by měla být použita, pokud se neočekává, že datové prvky změní hodnotu.
- K členům struktury se přistupuje pomocí operátoru dot (.).
- Musíme vytvořit instanci struktury.
- K vytvoření struktury C ++ používáme klíčové slovo struct.
- Ukazatele ukazující na strukturu jsou vytvářeny podobně, jako jsou vytvářeny ukazatele, které ukazují na běžné typy.
- Strukturu lze předat jako argument funkci stejným způsobem, jako jsou předány běžné funkce.