Mikä on avainsanan virtual merkitys?
Virtual
virtuaali
4425
0Äänestä
Muut lukivat myös
Luetuimmat keskustelut
- Tekisin SINUT ONNELLISEKSI NAINENMutta EHKÄ onni EI OLE mitä HALUAT.
- Mitähän sitä...Tsuumailin vähän muuallekin välillä ja törmäsin ajatuksiin, että miehen tulee suojella naista kaikelta pahalta. Mutta yhtään ei oltu eritelty mitä se kaikki paha on, jolta suojella. Jotenpas kysynkin kyselyikäni kyselyn…
- Hävettävä käytösHävettääkö sinua jokin?
- Kuka murtautu illalla kipparilleJotaki hampuusia kannettu ambulanssiin ja kipparin iso ikkuna palasina..Mitä tapahtunu??
- Susilauma KorkatissaKahdeksan suden lauma käynyt repimässä Hankosen Antin lampaat Korkatissa torstain vastaisena yönä. Mahtavaa luonnon Monimuotoisuutta. ViherVasemmisto ja Greenpeace kiittää.
- Kuvittelin että oltiin läheisempiäYstäviä, tavallaan. Mutta ei sitten oltukaan sun näkökulmasta. Pettymys, mutta totun kyllä asiaan vähitellen.
- Tule sunnuntaina juna-asemalleKello kymmenen aikaan, tavataan siellä. Ainoa ja viimeinen tilaisuus tavata. Jos et tule niin et enää koskaan näe minua. En halua kirjoitella mitään, en halua kuulla selityksiä. Haluan tavata.
- Myönnä poisLoukkaannuit mulle silloin aikoinaan? Ne viestit, väärinymmärrykset, kaikki. Miehelle
- Omapahan on vikasi jos jää loppuelämän romanssi välistä kun haluat olla itsepäinen jääräJa tuomita, jotain mitä et kykene ymmärtämään, antamatta edes mahdollisuutta, vaikka olen tehnyt parhaani elämäni edistämiseksi ja oikeasti yrittänyt!! Itken tyynyyn... tuskin edes yhtä vuotta ilman itsetuhoisia ajatuks…
- Onko se sinun mielestäsiminun syyni, että tilanne on se mikä se on? En tiedä. Toisaalta, en pysty uskomaan että millään minun tekemisilläni olisi ollut juurikaan merkitystä.
- Onko tarkoitus ottaa ihmisten eläkevarat valtion käyttöön?Vai mistä tässä eläkeiän nostossa hamaan tappiin on kyse? Eihän moni sitten saisi käytännössä eläkettä koskaan vaikka eläkemaksuja koko elämänsä olisi maksellutkin.
- kunnioitan tahtoasiEn tule sinua enää lähestymään.
- Eiköhän tämä ole jo tässäParivuotta hukkaan heitetty.
- Haluan sanoa sulle miesEttä pysytään molemmat pois täältä palstalta. Maltetaan olla pois, koska olosi on silloin parempi. Minä en kirjoittele enää, joten voit unohtaa tämän. Ottaisitko minuun yhteyttä muuta kautta, jos haluat. Olisin onnessan…
- Tiedätkö yhtäkään näistä "julkkiksista"? Elämäni biisi vieraslista la 10.10. hämmästyttääElämäni Biisissä on totuttu näkemään suomalaisia julkisuuden henkilöitä, jotka ovat koko kansalle tuttuja. Vieraita on ollut mm. viihteen, taiteen, tieteen, urheilun, politiikan ja kulttuurin saralta. Jos on ollut koko …
- Perjantai jälleen bläähViikonloppuna sataa, mitä meinaatte tehdä? Pian on syyslomakin, suunnitelmia tähän säähän? Mulla olis pihahommaa vielä, mutta en helvetissä mene sateeseen kastumaan. Kasvoi vähän kyr*äkin otsaan kelin takia. Eikö nyt vo…
- Mitä enää haluat??Tätä on kestänyt liian kauan!
- Vappu Pimiä lataa suorat sanat MasterChef-kritiikistä: "Tee niin tai näin, niin se on aina..."Vappu Pimiä liittyi viime MasterChef Suomi -kaudella arvovaltaiseen tuomaristoon. Pimiän rinnalla tuomaroivat Helena Puolakka ja Henri Alén. Pimiä toi tuomarikolmikkoon näkemystä ja kulmaa huippuravintoloiden keittiöide…
- Paras paikka asua?Mikä olisi paras paikka asua Suomussalmella,kun ulkopaikkakuntalainen sinne muuttaa. Suomussalmen kk viehättää, mutta olisiko Ämmänsaari parempi ja mikä alue siellä? Nyt saa kehua ja haukkua, mutta apuja päätöksentekoon…
- Sahan puupulaSahalla pitää olla valtava puupula kun Varikkosuoran uudelta myyntipaikan tontilta piti kaataa kaavassa suojellut puut? Kuinka ELINvoimaVALIOlautakunta antanut luva tälläiseen liito-oravien reitipuiden joukkotuhoon. Mas…
Vastaukset 4
Vanhimmat
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.
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.
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;
...