Mi a Struktúra a C ++ -ban?
A STRUCT egy C ++ adatstruktúra, amely különböző adattípusok elemeinek együttes tárolására használható. A C ++ nyelven a szerkezet egy felhasználó által definiált adattípus. A struktúra adattípust hoz létre a különböző adattípusok elemeinek egyetlen adattípus alá történő csoportosításához.
Például:
Tegyük fel, hogy információkat kell tárolnia valakiről, nevéről, állampolgárságáról és életkoráról. Az adatok külön tárolásához létrehozhat olyan változókat, mint név, állampolgárság és életkor.
Előfordulhat azonban, hogy a jövőben sok személyről kell információkat tárolnia. Ez azt jelenti, hogy változók jönnek létre a különböző egyének számára. Például név1, állampolgárság1, életkor1 stb. Ennek elkerülése érdekében jobb, ha létrehozunk egy struktúrát.
Ebben a C ++ oktatóanyagban megtudhatja:
- Mi a Struktúra a C ++ -ban?
- Mikor kell használni a struktúrát?
- C ++ Struktúra inicializálása
- Struktúrapéldányok létrehozása
- Hozzáférés a strukturális tagokhoz
- Mutatók a szerkezetre
- Struktúra mint függvény argumentum
- A C ++ szerkezet korlátozása
Mikor kell használni a struktúrát?
Íme néhány ok a struktúra használatára a C ++ nyelven.
- Használjon struktúrát, ha különböző adattípusok elemeit kell tárolnia egy adattípus alatt.
- A C ++ struktúrák inkább értéktípusok, mint referencia típusok. Használjon struktúrát, ha nem kívánja módosítani az adatait a létrehozás után.
C ++ Struktúra inicializálása
A C ++ struktúra létrehozásához a struct kulcsszót, majd egy azonosítót használunk. Az azonosító lesz a struktúra neve. Itt található a C ++ struktúra létrehozásának szintaxisa:
Szintaxis:
struct struct_name{// struct members}
A fenti szintaxisban a struct kulcsszót használtuk. A struct_name a struktúra neve.
A strukturált tagok göndör zárójelben vannak feltüntetve. Ezek a tagok valószínűleg különböző adattípusokhoz tartoznak.
Például:
struct Person{char name[30];int citizenship;int age;}
A fenti példában a Person három tagú struktúra. A tagok között szerepel a név, az állampolgárság és az életkor. Az egyik tag char típusú, míg a fennmaradó 2 egész szám, ha egy struktúra létrejön, a memória nincs lefoglalva. A memória csak akkor kerül kiosztásra, ha egy változó hozzáadódik a struktúrához.
Struktúrapéldányok létrehozása
A fenti példában létrehoztunk egy Person nevű struktúrát. A struktúra változót a következőképpen hozhatjuk létre:
Person p;
A p egy Person típusú strukturális változó. Használhatjuk ezt a változót a struktúra tagjainak eléréséhez.
Hozzáférés a strukturális tagokhoz
A struct tagok eléréséhez a struct példányát és a dot (.) Operátort használjuk. Például, hogy elérje a struct Person tagkori életkorát:
p.age = 27;
A struct Személy tagkorához a struktúra példánya alapján jutottunk el, p. Ezután a tagkori életkor értékét 27-re állítottuk.
1. példa:
#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;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- A programban szerepeltesse az iostream fejlécfájlt az abban meghatározott funkciók használatához.
- Tartsa be az std névteret, hogy az osztályait hívás nélkül használhassa.
- Hozzon létre egy Person nevű struktúrát.
- A strukturált test kezdete.
- Hozzon létre egy egész tagú állampolgárság nevű struktúrát.
- Hozzon létre egy struktúra tagot, amelynek neve: type of type egész.
- A strukturált test vége.
- Hívja meg a main () függvényt. A program logikát hozzá kell adni ennek a függvénynek a törzséhez.
- Hozzon létre egy példányt a struct Person-ből, és adja meg neki a p nevet.
- Állítsa a strukturált tag állampolgárság értékét 1-re.
- Állítsa a struct tag életkorát 27-re.
- Nyomtassa ki a konzolon a strukturált tag állampolgárság értékét más szöveg mellett.
- Nyomtassa ki a konzolon a strukturált tag korának értékét más szöveg mellé.
- A programnak vissza kell adnia egy értéket, ha sikeresen fut.
- A fő () függvény vége.
Mutatók a szerkezetre
Lehetőség van mutató létrehozására, amely egy szerkezetre mutat. Hasonló ahhoz, ahogyan a natív adattípusokra mutató mutatók, például int, float, double, stb. Ne feledje, hogy a C ++ nyelvű mutató egy memóriahelyet tárol.
2. példa:
#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;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Tartsa be az iostream fejléc fájlt programunkba annak funkcióinak használata érdekében.
- Vegye fel az std névteret programunkba, hogy az osztályait hívás nélkül használhassa.
- Hozzon létre egy Hosszú nevű struktúrát.
- A struktúra hosszának kezdete.
- Hozzon létre egy struktúratagot, az egész adattípus métereként.
- Hozzon létre egy egész számot tartalmazó centiméter nevű struktúrát.
- A struktúra hosszúságának vége.
- Hívja meg a main () függvényt.
- A fő () függvény törzsének kezdete.
- Hozzon létre egy mutató változót * ptr és a normál l változót, amelynek típusa: Hosszúság.
- Tárolja az l változó címét a mutatóváltozónkba.
- Jelenítsen meg egy üzenetet a konzolon, amelyben arra kéri a felhasználót, hogy adja meg a változó méterek értékét.
- Olvassa el a felhasználó által a billentyűzeten beírt értéket. A tagfüggvény-mérőkhöz itt lehet hozzáférni a mutatóváltozó segítségével.
- Jelenítsen meg egy üzenetet a konzolon, amelyben arra kéri a felhasználót, hogy adja meg a változó centiméter értékét.
- Olvassa el a felhasználó által a billentyűzeten beírt értéket. A centiméter tagfüggvény itt érhető el a mutató változó segítségével.
- Jelenítse meg a felhasználó által olvasott értékeket a konzolon más szöveg mellett.
- A programnak sikeres végrehajtáskor vissza kell adnia egy értéket.
- A fő () függvény törzsének vége.
Struktúra mint függvény argumentum
Struktúrát átadhat egy függvénynek argumentumként. Ez ugyanúgy történik, mint egy normális érv átadása. A struktúraváltozók átadhatók egy függvénynek is. Jó példa erre, amikor meg kell jelenítenie a struct tagok értékeit. Bemutassuk ezt:
3. példa:
#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< Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Helyezze be az iostream fejléc fájlt a fájlunkba. Ezután hibajavítás nélkül fogjuk használni a funkcióit.
- Az osztályok használatához vegye fel programunkba az std névteret. Az osztályok használatához nem kell meghívnunk a névteret.
- Hozzon létre egy Person nevű struktúrát.
- A strukturált Személy testének kezdete.
- Hozzon létre egy tagot a struct Person-ből. A tag neve állampolgárság, és típusa egész szám.
- Hozzon létre egy tagot a struct Person-ben. A tag neve kor és egész típusú.
- A strukturált személy testének vége.
- Hozzon létre egy olyan függvényt, amely argumentumként a struct Person (p) példányát veszi fel.
- Hívja meg a fő funkciót. A {a main () függvény törzsének kezdetét jelöli.
- Hozzon létre egy példát a Struct Person-ről, és adja meg neki a nevet.
- Hozzáférés a struct tag változó állampolgársághoz a struct p példa használatával és az 1 érték hozzárendelésével.
- Hozzáférés a struct tag változó életkorához a pt struktúra példányának használatával és a 27 érték hozzárendelésével.
- Hívja meg a függvényt, és adja hozzá argumentumként a Struct Person, p példányát.
- A függvénynek sikeres végrehajtáskor vissza kell adnia egy értéket.
- A fő () függvény törzsének vége.
- Hozza létre a függvény törzsét.
- A függvény törzsének kezdete.
- Nyissa meg a strukturált tag állampolgárság értékét, és nyomtassa ki a konzolra a többi szöveg mellé.
- Nyissa meg a struktúratag életkor értékét, és nyomtassa ki a konzolra a többi szöveg mellé.
- A függvénytest vége.
A C ++ szerkezet korlátozása
A struktúrák korlátai a következők:
- A strukturált adattípus nem kezelhető beépített adattípusokként.
- Az olyan operátorok, mint a + -, és mások, nem használhatók fel a struktúraváltozókra.
- A struktúrák nem támogatják az adatok elrejtését. A struktúra tagjai bármely funkcióval hozzáférhetők, annak hatókörétől függetlenül.
- A statikus tagok nem deklarálhatók a szerkezettesten belül.
- A szerkezeteket nem lehet létrehozni.
Összegzés:
- A struct egy olyan adatstruktúra, amely különböző típusokhoz tartozó adatelemeket tárol.
- Míg egy tömb hasonló típusú adatelemeket tárol, addig a struct különböző típusú elemeket tárol.
- Struktúrát kell használni, ha az adatelemek várhatóan nem változtatnak az értékén.
- A struktúra tagjai a dot (.) Operátor segítségével érhetők el.
- Létre kell hoznunk a struktúra példányát.
- A C ++ struktúra létrehozásához a struct kulcsszót használjuk.
- A struktúrára mutató mutatók ugyanúgy jönnek létre, mint a reguláris típusokra mutató mutatók.
- A struktúra argumentumként átadható egy függvénynek ugyanúgy, mint a közönséges függvények.