Mitähän class of tarkoittaa noin yleisesti ottaen?
Esimerkiksi alla olevasta linkistä löytyy muoto class of TWSocket;
http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000646&posting=22000000035469438
Class of ?
1
239
Vastaukset
- Mika0800
Class of = luokkatyyppityyppi
siis:
kun esimerkiksi:
procedure NaytaKokonaisluku(I:Integer);
begin
ShowMessage('kokonaisluvun arvo on ' IntToStr(I) );
end;
voit kutsua tätä näin:
NaytaKokonaisluku(3);
NaytaKokonaisluku(5);
Jos kuitenkin et etukäteen tiedä, minkä luvun haluat näyttää, tarvitset muuttujan:
var
K : Integer;
jolloin voit näyttää muuttujan K sisältämän kokonaisluvun näin:
NaytaKokonaisluku(K);
aivan vastaavasti:
Jos esim. olet määritellyt luokat:
TKuvio = class(TGraphicControl)
end;
TKolmio = class(TKuvio)
end;
TNelio = class(TKuvio)
end;
TYmpyra = class(TKuvio)
end;
Voit luoda olion esim. näin:
var
Kuvio1 : TKuvio;
begin
// joko -tai (ei kannata luoda useita olioita ja ylikirjoittaa muuttujan vanhaa sisältöä
Kuvio1 := TKolmio.Create(Self);
Kuvio1 := TNelio.Create(Self);
Kuvio1 := TYmpyra.Create(Self);
end;
mutta entä, jos et tiedä etukäteen, mitä kuviota olet luomassa ?
Aivan kunten Integer määrittelee tyypin, johon voi tallentaa kokonaisluvun, niin Class of -rakenteella määritellään tyyppi, johon voi tallentaa luokan tyypin:
TKuvioTyyppi = class of TKuvio;
ja kun on määritelty tyyppi, seuraavaksi tarvitaan ko. tyyppiä oleva muuttuja,
var
KuvioLuokka : TKuvioTyyppi;
KuvioLuokka := TKolmio;
TAI
KuvioLuokka := TNelio;
TAI
KuvioLuokka := TYmpyra;
kun muuttujan KuvioLuokka arvo on asetettu (ja huom: sitä voi myöhemmin muuttaa koska tahansa), voidaan sitä käyttää kiinteän tyypin asemesta:
sensijaan, että:
Kuvio1 := TKolmio.Create(Self);
voidaan yhtä hyvin:
Kuvio1 := KuvioLuokka.Create(Self);
tässä siis luodaan olio, jonka tyyppi on tallennettu muuttujaan KuvioLuokka, sensijaan, että se olisi kiinteästi esim. TKolmio tai TYmpyra.
Eli aivan, kuten Integer on kokonaislukuTYYPPI, ja String on merkkijonoTYYPPI, niin TKuvioTyyppi on luokkatyyppiTYYPPI, johon siis tallennetaan luokkatyyppejä.
Lisäksi, koska tässä on määritelty:
TKuvioTyyppi = class of TKuvio;
niin muuttujaa, joka on määritelty olevan tyyppiä ä TKuvioTyyppi (kuten esim. KuvioLuokka) voidaan tallentaa vain tyyppiä TKuvio tai tyyppejä, jotka on (suoraan tai epäsuoraan) periytetty luokasta TKuvio.
Jos siis määrittelet:
TVarillinenKolmio = class(TKolmio)
niin vot asettaa myös:
KuvioLuokka := TVarillinenKolmio
sensijaan em. määrityksin yritys asettaa:
KuvioLuokka := TStringlist;
aiheuttaa kääntäjän virheilmoituksen, sillä vaikka TStringlist on luokkatyyppi, se EI periydy tyypistä TKuvio.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Näin tyhmä vasemmistolainen on: "S-kaupoissa on nykyään ihanaa käydä
kun siellä ei ole hihhuleita eikä persuja." Vain tyhmä eli heikkoälyinen vasemmistolainen voi tehdä noin lapsellisia ju524417S-kaupoissa on nykyään ihanaa käydä
Kun niissä ei enää käy satuolentoihin uskovat hihhuIit eivätkä persut. Asiakaskunta on huomattavasti siistiytynyt muutam1174291Riikka runnoo! Uutta velkaa tänä vuonna 17 mrd. euroa
Tirsk. Nyt kyllä hihityttää kuin pientä eläintä. Riikka takoo maailmanennätyksiä tasaiseen tahtiin. " [Riikka] joutuu434210Suomessa on ollut suurtyöttömyyttä ennenkin, ja lääkäriin pääsee nykyäänkin
Täällähän oli jonkun sekopään(vas.) juttu, että ennen ei ollut työttömyyttä ja lääkäriin pääsi. Siihen alkoi tietysti ko693978- 853414
Kysymys: Kuinka moneen maahan neuvosto-venäjä on hyökännyt
viimeisten 90-vuoden aikana? Ja lähinnä on siis kyse neuvosto-venäjän naapurimaista - kuten Suomesta. Lista on huomatta673289IL - Auerin lapsia oli houkuteltu rahalla Annelin puolelle?
16:12 Outoja väitteitä Sijaisäidin mukaan Auerin lapsia koetettiin houkutella nettipalstoilla muuttamaan kertomuksiaan1523271Kun aika on oikea niin
Tupsahdat uudelleen tai löydän edes melkein yhtä ihanan ja joudun tyytymään... Suukko poskelles. 😘 Viattomasti vain.. �171602- 451531
Jos sulla ei olis ollut tunteita
Tuskin olisit reagoinut niin voimakkaasti, mies? Vai oliko vetäytymiseen jokin muu syy kuin luulit ettei mua kiinnosta?1291160