C - kielessä rakenne ( struct) on yhdistetty tietotyyppi , joka kapseloi piilottamatta erityyppisiä arvoja . Järjestys, jossa arvot sijoitetaan muistiin, määritetään tyyppiä määritettäessä, ja se säilytetään objektien koko elinkaaren ajan, mikä mahdollistaa epäsuoran pääsyn (esimerkiksi osoittimien kautta ).
Esimerkki rakenneilmoituksesta:
struct str_name { int jäsen_1 ; kelluva jäsen_2 ; char jäsen_3 [ 256 ]; /* ... */ }; // rakenteen määritys struct str_name struct0 ; // rakenteen ilmoitus ja alustus struct str_name struct1 = { 1 , 3.1415f , "doit" /* ... */ }; // struct-ilmoitus ja kentän alustus // standardin tukema C99 lähtien struct str_name struct2 = {. jäsen_1 = 2 , . jäsen_2 = 3.1415f , . Member_3 = "tee" /* ... */ };Tyyppi "rakenne" C:ssä sallii rekursion , eli sen koostumuksessa on osoittimia, jotka viittaavat juuri tämän rakenteen objekteihin. Siten C:n rakenteet yhdistävät ei vain monikot ja tietueet , vaan myös algebralliset tyypit . Esityksen helpottamiseksi rakenteen sanotaan olevan luokka, jonka oletuskentät ovat kaikki julkisia [1] .
C++ : ssa rakenteen käsite laajennettiin luokkaan , eli lisättiin mahdollisuus sisällyttää rakenteeseen metodifunktioita . Suurin ero on se, että "kolmen säännön" mukaan rakenteilla on aina konstruktori , vaikka sitä ei olisikaan erikseen määritelty lähdekoodissa. Siten puhuminen " rakenteista C++:ssa " ei ole oikein. Sama koskee C# :a .
Go- kieli käyttää rakenteita, jotka ovat toiminnaltaan lähellä luokkia (metodeja voidaan liittää rakenteeseen), vaikka jotkut OOP -periaatteet puuttuvat (esim. perinnöllisyys )
Tietotyypit | |
---|---|
Käsittämätön | |
Numeerinen | |
Teksti | |
Viite | |
Komposiitti | |
abstrakti | |
Muut | |
liittyvät aiheet |