Class of ?

Olioita kehässä

1

172

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Marin pyöräili jalkakäytävällä. Aikuinen ihminen! Vai onko?

      https://www.seiska.fi/vain-seiskassa/hups-sanna-marin-ja-joni-rakas-kaahasivat-fillareilla-jalkakaytavalla-paljonkertova
      Maailman menoa
      219
      2861
    2. TULI PALO HAAPAVEELLÄ

      Omakotitalo tuhoutui tulipalossa Haapavedellä varhain torstaiaamuna, pelastuslaitos kertoo. Palokunnan saapuessa kohtee
      Haapavesi
      16
      1734
    3. Niina Lahtinen avautuu erikoisesta "krapula-metodista" ennen suoraa lähetystä: "Kuin mulla olisi..."

      Kiitos, Niina! Upeasti vedit TTK-parketilla. Tsemppiä tuleviin tansseihin vaikkapa tuolla "krapulametodilla"! Lue Lahti
      Tanssii tähtien kanssa
      29
      1002
    4. Miten sua nyt

      Pitäisi lähestyä tai ylipäätään suhtautua mihinkään. Kyselenkö kuulumisia vai juttelenko päivän säästä. Vai hymyilenkö p
      Ikävä
      76
      999
    5. Toivon vain

      Ettet enää välittäisi. Kun näet niin ohitatko. Ettei silmissäsi loistaisi enää mikään minut nähdessäni. Ei sitä pilkettä
      Ikävä
      4
      959
    6. Harmailla autoilla liikkuvat vorot

      Keitäs sankareita nämä ovat? https://www.kainuunsanomat.fi/artikkeli/harmailla-autoilla-liikkuvat-vorot-ovat-tehneet-us
      Suomussalmi
      16
      881
    7. Jenni Haukio ja Sauli Niinistö

      Ero. Näinhän se menee kun ikäeroa on riittävästi. https://www.iltalehti.fi/viihdeuutiset/a/1c94ff48-185d-4d95-aff5-3e93
      Maailman menoa
      22
      824
    8. Kuka on tämä henkilö

      jonka pullukkaprinsessa kertoilee haisevan? Ennen nykyistä se oli erään seksuaalirikoksesta tuomitun tyypin kanssa, muit
      Kotimaiset julkkisjuorut
      93
      812
    9. Minä näen sinut

      Näen kuka olet. Osaan laskea. Olen todella, siis todella hämmentynyt, ihastunut, vaivautunut ja ehkä eniten todella epäu
      Ikävä
      26
      775
    10. Hyvää huomenta ja kivaa päivää

      hyvää huomenta ja kivaa päivää 😊🌞☕❤️
      Ikävä
      164
      772
    Aihe