Virtual

virtuaali

Mikä on avainsanan virtual merkitys?

4

425

    Vastaukset 4

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Mika0800

      senkun lisäät vaikkapa formin määrittelyyn:

      procedure test2; virtual;

      laitat kohdistimen -> virtual;

      ja painat Ctrl-F1.

      Miksiköhän Delphin sisäisen ohjeen käyttö on noin vaikeaa ?

      The Virtual directive allows a method in a class to be overriden (replaced) by a same named method in a derived class.

      You would mark a function or procedure as Virtual when you happily allow a programmer who creates a class based on your class to replace its functionality.

      For example, you might allow a base class to paint a canvas in white, but allow a derived class to paint a picture on the canvas instead. Here, the virtual directive is allowing the code to be extended, to be enriched.

      Virtual may be followed by the Abstract directive. This modifies the effect of the virtual directive. It means that the current class must not code the method - it is there only as a placeholder to remind and ensure that derived classes implement it.

      Notes
      Virtual is semantically equivalent to Dynamic. The former is optimised for speed, the latter for memory.

      • kiitos vastauksesta

        En osaa englantia, voitko sanoa saman suomeksi?


      • virtual/dynamic
        kiitos vastauksesta kirjoitti:

        En osaa englantia, voitko sanoa saman suomeksi?

        Tuosta saa sen käsityksen että kun käyttää luokan metodin esittelyssä dynamic (kääntäjän ohjeen/) avainsanan tilalla virtual niin kyseinen luokan metodi
        toimii nopeammin. Jos taas käyttää dynamic avainsanaa niin se vie vähemmän muistia.

        Eli kääntäjä voi rakentaa olioiden metodien kutsun kahdella eri tavalla.


    • niin näet toiminnan

      Virtuaalimetodia voit testata myös tämän esimerkin avulla
      Aluksi luot lomakkeelle napin ja memon sekä napille painamistapahtuman.
      Sen jälkeen lisäät puuttuvan koodin

      ...
      type

      { TForm1 }

      TForm1 = class(TForm)
      Button1: TButton;
      Memo1: TMemo;
      procedure Button1Click(Sender: TObject);
      private
      { private declarations }
      public
      { public declarations }
      end;

      TKantaLuokka = class
      public
      function EiVirtuaaliMetodi: string;
      function VirtuaaliMetodi: string; virtual;
      end;

      TLapsiLuokka = class(TKantaLuokka)
      public
      function EiVirtuaaliMetodi: string;
      function VirtuaaliMetodi: string; override;
      end;

      var
      Form1: TForm1;

      implementation

      { TForm1 }

      function TKantaLuokka.EiVirtuaaliMetodi: string;
      begin
      Result := 'TKantaLuokka.EiVirtuaaliMetodi';
      end;

      function TKantaLuokka.VirtuaaliMetodi: string;
      begin
      Result := 'TKantaLuokka.VirtuaaliMetodi';
      end;

      function TLapsiLuokka.EiVirtuaaliMetodi: string;
      begin
      Result := 'TLapsiLuokka.EiVirtuaaliMetodi';
      end;

      function TLapsiLuokka.VirtuaaliMetodi: string;
      begin
      Result := 'TLapsiLuokka.VirtuaaliMetodi';
      end;

      procedure TForm1.Button1Click(Sender: TObject);
      var k: TKantaLuokka;
      l: TKantaLuokka;
      // määritellään lapsiluokalle
      //myös kantaluokka tyyppinen osoitin

      begin
      k := TKantaLuokka.Create;
      l := TLapsiLuokka.Create;
      try
      Memo1.Lines.Add(k.EiVirtuaaliMetodi);
      Memo1.Lines.Add(k.VirtuaaliMetodi);
      Memo1.Lines.Add(l.EiVirtuaaliMetodi);
      Memo1.Lines.Add(l.VirtuaaliMetodi);
      finally
      l.Free;
      k.Free;
      end; // try finally
      end;

      ...

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kylypylä mätänee

      Kuka sotki uimaaltaan bakteereilla
      Suomussalmi
      68
      1040
    2. Tässä ovat Elämäni biisi -vieraat lauantai 3.10. - Yksi vieras on todellinen suomalaisten suosikki

      Jos menisit Elämäni biisiin, mikä olisi elämäsi biisi ja miksi? Elämäni biisi tulee suorana lähetyksenä Tampereelta. K
      Viihde ja kulttuuri
      12
      909
    3. En voi kertoa meistä kenellekään

      Minulla on ikävä sinua mies.. Oon yrittänyt taas unohtaa, mutta silti tulet mieleeni lähes päivittäin. Eihän meitä voi o
      Ikävä
      61
      870
    4. Huomenta

      Sinulle! Olen miettinyt sinua paljon yön aikana. 🫂
      Ikävä
      62
      808
    5. Mikä kaivatullesi

      On tärkeintä elämässään?
      Ikävä
      60
      760
    6. 57
      697
    7. Onko mulla vielä mahkuja saada sinut M nainen

      Sano joku prosenttiluku?
      Ikävä
      60
      617
    8. Kadutko mies sitä miten reagoit?

      ..siihen sotkuun, jonka jälkeen mikään ei ole ollut kuin ennen. 🥺
      Ikävä
      49
      617
    9. Mitä ihmettä pitäisi tapahtua

      Että me kohdataan ja saadaan tämä tilanne etenemään?
      Ikävä
      67
      596
    10. Jos mies naisen prinsessakohtelu

      on sinulle liikaa, älä valitse prinsessaa 🦋🧚🏼‍♀️👸🏼
      Ikävä
      132
      579
    11. SuMetKu konkursissa

      Asiakastiedon sivulla oli, SuMetKu asetettu konkurssiin. Tulihan se seinä vastaan lopultakin suuruudenhulluudessa.
      Suomussalmi
      20
      567
    12. Miksi olet niin hankala?

      Miksi toimit miten toimit?
      Ikävä
      50
      559
    13. Suutuin lähinnä itselleni

      Kun irl juttujen takia näyttää erittäin epätodennäköiseltä, että olisin millään tavoin toivottu henkilö sulle.
      Ikävä
      30
      555
    14. Ei voi mittään

      Tykkään sinusta, vaikka miten typerän jutun suustasi päästät😅
      Ikävä
      33
      507
    15. Hei. Ilmeisesti tässä saa unohtaa sen

      että meistä joskus jotain tulisi? M
      Ikävä
      29
      505
    16. Miksi meille jäi

      Niin huonot välit vaikka meistä kumpikaan ei ole tunteilleen mitään voinut. Ehkä se kohtalo on sitä mieltä ettei kuitenk
      Ikävä
      34
      478
    17. En usko enää

      rakkauteen.
      Ikävä
      72
      476
    18. Miten voit tykätä

      Jos samaan aikaan haluat pysyä mahdollisimman kaukana?
      Ikävä
      40
      457
    19. Tykkään sinusta

      Vaikka en vastailekaan!
      Ikävä
      17
      440
    20. Mitä sulle

      Kuuluu?
      Ikävä
      24
      439
    Aihe