V jazyce C je struktura ( struct) složený datový typ , který zapouzdřuje , aniž by skryl sadu hodnot různých typů. Pořadí, ve kterém jsou hodnoty umístěny v paměti, je určeno při definování typu a je zachováno po celou dobu životnosti objektů, což umožňuje nepřímý přístup (například prostřednictvím ukazatelů ).
Příklad deklarace struktury:
struct str_name { int člen_1 ; float member_2 ; char member_3 [ 256 ]; /* ... */ }; // deklarace struktury struct str_name struct0 ; // deklarace a inicializace struktury struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // deklarace struktury a inicializace pole // podporováno standardem od C99 struct str_name struct2 = {. člen_1 = 2 , . člen_2 = 3,1415f , . member_3 = "doit" /* ... */ };Typ "struktura" v C umožňuje rekurzi , tedy přítomnost ukazatelů odkazujících na objekty právě této struktury ve svém složení. Struktury v C tedy kombinují funkčnost nejen n-tic a záznamů , ale také algebraických typů . Pro snadnou prezentaci se o struktuře říká, že je třída, jejíž výchozí pole jsou všechna veřejná [1] .
V C++ byl koncept struktury rozšířen na class , to znamená, že byla přidána možnost zahrnout do struktury funkce metody . Hlavní rozdíl je v tom, že podle „pravidla tří“ mají struktury vždy konstruktor , i když není explicitně definován ve zdrojovém kódu. Hovořit o „ strukturách v C++ “ tedy není správné. Totéž platí pro C# .
Jazyk Go používá struktury, které jsou svou funkčností blízké třídám (ke struktuře lze připojit metody), i když některé principy OOP chybí (například dědičnost )
Typy dat | |
---|---|
Neinterpretovatelné | |
Numerický | |
Text | |
Odkaz | |
Kompozitní | |
abstraktní | |
jiný | |
související témata |