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
179
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
Vakava rikosepäily Seinäjoella
Ilkka ei taaskaan tiedä mitään mutta hesalaiset kertoo: https://www.is.fi/kotimaa/art-2000010959325.html412625Mitä on woketus?
Täälläkin hoetaan usein sanaa "woketus". Mitä se tarkalleen ottaen tarkoittaa? Ilmeisesti sen käyttäjät ymmärtävät sen k3992129Olet saanut kyllä tunnisteita
Itsestäsi ja meistä. Mutta mikä siinä on, ettet kirjoita etkä anna itsestäsi merkkejä. Ellei ole kysymys siitä, mikä ens201932Oletko jo luovuttanut?
Joko olet luovuttanut kaivatun suhteen ja hyväksynyt, että mitään ei tule?1381724Ikääntyvien tilanne Suomessa on järkyttävä - Hoivakotiin ei pääse, vaan joutuu selviytymään yksin
Ikääntyvien tilanne Suomessa on järkyttävä… Hoivakoteihin sijoittamista vältellään, koska hoito on kallista ja hyvinvoin1251623Mies pakko olla rehellinen
Kiinnostuin koska olet tosi komea ja sulla on ihana puheääni. Olen aika pinnallinen sitten kai... 😓 kyllä olet tosi rau151581Kristo Salminen, 52, riisuutui - Paljasti Iso-Börjen tatuoinnit - Somekansan tuomio yksimielinen
Iso-Börje, tuo iso, tatuoitu, yltiöromanttinen ja aika kuuma rikollispomo - vai mitä mieltä sinä olet? Lue lisää ja kat211113Hirvenmaitojuusto
Olin Prisman juustohyllyllä kun vierestä alkoi kuulua kamala paapatus. Siinä oli vanha muori, joka räyhäsi raivokkaasti,01112- 741019
Kerro mulle miksi juuri me
Kohdattiin? Tässä elämässä. Vaikka ollaan edelleen tutut tuntemattomat. Se on omituinen tunne.63925