Virtuální Metody – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Virtuální Metody – C / C++ – Fórum – Programujte.comVirtuální Metody – C / C++ – Fórum – Programujte.com

 

Sony0
Návštěvník
5. 11. 2006   #1
-
0
-

Vysvětlil by mi prosím někdo k čemu jsou vlstně virtuální metody dobré? Resp. je něco, co by bez nich udělat nešlo nebo aspoň jestli to něco zjednodušuje...

Nahlásit jako SPAM
IP: ...–
Miroslav Kajan0
Věrný člen
6. 11. 2006   #2
-
0
-

Důležité jistě jsou, využiješ je, když očekáváš odvozování z nějaké třídy...

Nahlásit jako SPAM
IP: ...–
Zápisky z dění na FB (momentálně ve vývoji): http://fbpd.ic.cz/
Sony0
Návštěvník
6. 11. 2006   #3
-
0
-

to přece ale můžu udělat překrytím.....

Nahlásit jako SPAM
IP: ...–
soda0
Duch
6. 11. 2006   #4
-
0
-

To Sony:
virtualni metody jsou tu od toho aby bylo pocas behu programu (runtime) jasny ktera funkce se zavola, kdyz je objekt podeden.
konkretni priklad je driver displeje. vzdycky budes volat funkci PutXY(...); zakladniho interface ,no zavola se Ti jenom ta virtualni funkce ktera patri skutecne (dynamicky) skonstruovanemu objektu (napr. driveru displeje).

Nahlásit jako SPAM
IP: ...–
Sony0
Návštěvník
6. 11. 2006   #5
-
0
-

Hm tomu moc nerozumim. kdy? vytvo?im odvozenej objekt mus? b?t v jeho t??d? ta funkce bu? jak bu? a je jedno jestli je tam "virtual" nebo ne.plat? stejn? v?dy posledn? uveden? funkce dan?ho n?zvu.t? je jasn? ?e se zavol? ta spr?vn? funkce(a? jde o p?ekryt? nebo virtu?ln? metodu).byl by sp?? n?jakej p??klad ve kter?m by to tak nebylo?
p??klad driveru je na m? trochu moc slo?itej tak daleko sem je?t? nedo?el.

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
6. 11. 2006   #6
-
0
-

Sony píše:#
# Hm tomu moc nerozumim. kdy? vytvo?im odvozenej objekt mus? b?t v jeho t??d? ta funkce bu? jak bu? a je jedno jestli je tam "virtual" nebo ne.plat? stejn? v?dy posledn? uveden? funkce dan?ho n?zvu.t? je jasn? ?e se zavol? ta spr?vn? funkce(a? jde o p?ekryt? nebo virtu?ln? metodu).byl by sp?? n?jakej p??klad ve kter?m by to tak nebylo?#
#p??klad driveru je na m? trochu moc slo?itej tak daleko sem je?t? nedo?el.



Ale jak uz psal soda, tak virtualni metody funguji pouze u objektu, ktere jsou DYNAMICKY vytvorene. Tam prave prekryti metody selhavaji. Ovsem jak je videt z tveho dotazu, tak by nebylo na skodu si zjistit, jak vlastne virtualni metody funguji. Priklad ted nebudu vymyslet, ale zkus navstivit strycka Google a nebo se take podivej na server Builder.cz.

Nahlásit jako SPAM
IP: ...–
Sony0
Návštěvník
6. 11. 2006   #7
-
0
-

fajn. moc dík. vyzkoušel sem si to párkrát zkompilovat a myslim že už mi trochu svítí....

Nahlásit jako SPAM
IP: ...–
Pedro0
Stálý člen
6. 11. 2006   #8
-
0
-

dajme tomu ze mas jednu cisto virtualnu triedu (nejde vytvorit instancia) a od nej si spravis tak 6-7 odvodenych tried ... napr roznych pozicii vo firme.
dalej si nadefinujes pole zamestnancov, ktorym chces napr dat premie (predpokladajme ze kazda pozicia dostava ine premie) tak si nadefinujes metodu VyplatPremiu() a prekryjes ju v kazdej triede. ale kedze su to vsetci zamestnanci jednej firmy tak ich das do pola odkazov na tu bazovu triedu a vyplacas to v cykle for. Tu prichadza bez virtualnych metod problem, pretoze tu metodu si prekryl v kazdej triede, ale bola aj v tej bazovej. kedze si metodu neoznacil ako virtual tak sa budu kazdemu vyplacat rovnake premie ... ak by si ju definoval ako virtualnu tak sa sam program rozhodne ktoru verziu metody VyplatPremiu() ma kedy pouzit podla typu instancie a nie podla typu odkazu. (mno chcel by som vidiet co by ti ti zamestnanci povedali keby dostali napr o 5000Sk menej :D )

Nahlásit jako SPAM
IP: ...–
Vsetci ste blazni, to len ja som lietadlo
Marek0
Návštěvník
7. 11. 2006   #9
-
0
-

paladin - o vyske bonusu nemusia byt dopredu oboznameni

Nahlásit jako SPAM
IP: ...–
Pedro0
Stálý člen
7. 11. 2006   #10
-
0
-

To myth:
jj to je fakt ;) ale predsalen sef oddelenia dostane rovnaku premiu ako dajme tomu upratovacka ???

Nahlásit jako SPAM
IP: ...–
Vsetci ste blazni, to len ja som lietadlo
Sony0
Návštěvník
7. 11. 2006   #11
-
0
-

jasn?.u? to asi ch?pu. kv?li objekt?m na voln?m ulo?i?ti se to mus? d?lat virtu?n?. hmhm. jo tak je?t? jednou d?ky. sv?t je zas o n?co jednodu???...

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 94 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý