A C nyelvben a struktúra ( struct) olyan összetett adattípus , amely különböző típusú értékeket nem rejt magában . Az értékek memóriában való elhelyezésének sorrendje a típus meghatározásakor kerül meghatározásra, és az objektumok teljes élettartama alatt megmarad, ami lehetővé teszi a közvetett hozzáférést (például mutatókon keresztül ).
Példa szerkezeti deklarációra:
struct str_name { int tag_1 ; float tag_2 ; char tag_3 [ 256 ]; /* ... */ }; // struktúra deklaráció struct str_name struct0 ; // a struktúra deklarálása és inicializálása struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // struct deklaráció és mező inicializálása // a szabvány támogatja a C99 óta struct str_name struct2 = {. tag_1 = 2 , . tag_2 = 3,1415f , . tag_3 = "doit" /* ... */ };A "struktúra" típus a C-ben lehetővé teszi a rekurziót , vagyis az ilyen szerkezetű objektumokra utaló mutatók jelenlétét az összetételében. Így a C struktúrái nem csak a sorok és rekordok , hanem az algebrai típusok funkcióit is kombinálják . Az egyszerű bemutatás érdekében a struktúrát olyan osztálynak nevezzük, amelynek alapértelmezett mezői mind nyilvánosak [1] .
A C++ -ban a struktúra fogalmát kiterjesztették az osztályra , vagyis hozzáadták a metódusfüggvények szerkezetbe való beillesztésének lehetőségét . A fő különbség az, hogy a „három szabálya” szerint a struktúráknak mindig van konstruktora , még akkor is, ha az nincs kifejezetten definiálva a forráskódban. Így a „ struktúrákról C++-ban ” nem helyes beszélni . Ugyanez vonatkozik a C# -ra is .
A Go nyelv olyan struktúrákat használ, amelyek funkcionalitásukban közel állnak az osztályokhoz (metódusok csatolhatók a struktúrához), bár néhány OOP -elv hiányzik (például az öröklődés )
Adattípusok | |
---|---|
Értelmezhetetlen | |
Numerikus | |
Szöveg | |
Referencia | |
Összetett | |
absztrakt | |
Egyéb | |
Kapcsolódó témák |