I C -sproget er en struktur ( struct) en sammensat datatype, der indkapsler uden at skjule et sæt værdier af forskellige typer. Rækkefølgen, hvori værdier placeres i hukommelsen, er angivet, når typen defineres og bevares i hele levetiden af objekter, hvilket tillader indirekte adgang (for eksempel gennem pointere ).
Eksempel på strukturdeklaration:
struct str_name { int medlem_1 ; flydemedlem_2 ; _ char member_3 [ 256 ]; /* ... */ }; // strukturerklæring struct str_name struct0 ; // erklæring og initialisering af strukturen struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // struct-erklæring og feltinitialisering // understøttet af standarden siden C99 struct str_name struct2 = {. medlem_1 = 2 , . medlem_2 = 3.1415f , . member_3 = "doit" /* ... */ };Typen "struktur" i C tillader rekursion , det vil sige tilstedeværelsen i dens sammensætning af pointere, der refererer til objekter med netop denne struktur. Således kombinerer strukturer i C funktionaliteten af ikke kun tupler og poster , men også algebraiske typer . For nem præsentation siges en struct at være en klasse, hvis standardfelter alle er offentlige [1] .
I C++ blev begrebet struktur udvidet til klasse , det vil sige, at muligheden for at inkludere metodefunktioner i strukturen blev tilføjet . Den største forskel er, at strukturer ifølge "reglen om tre" altid har en konstruktør , selvom den ikke er eksplicit defineret i kildekoden. Derfor er det ikke korrekt at tale om " structs in C++ ". Det samme gælder for C# .
Go - sproget bruger strukturer, der i funktionalitet er tæt på klasser (metoder kan knyttes til strukturen), selvom nogle OOP- principper mangler (f.eks. arv )
Datatyper | |
---|---|
Ufortolkelig | |
Numerisk | |
Tekst | |
Reference | |
Sammensatte | |
abstrakt | |
Andet | |
relaterede emner |