<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.23588">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#c0c0c0>
<DIV><FONT size=2>></FONT><FONT size=3>takze chcete po predkovi (tride
basecls), </FONT></DIV>
<DIV>Ja to preci chci v jednom dotazu po predkovi, ale v druhem po
potomkovi.</DIV>
<DIV>A prave se divim, ze i ten potomek vraci hodnotu z predka.</DIV>
<DIV> </DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Spatne to mozna je, ale ve videni c++ ;-)</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>VFP kod:</FONT></DIV>
<DIV><FONT size=2>define class base as custom</FONT></DIV>
<DIV><FONT size=2> testvar = 100</FONT></DIV>
<DIV><FONT size=2> proc getVal</FONT></DIV>
<DIV><FONT size=2> return
this.testvar</FONT></DIV>
<DIV><FONT size=2> endproc</FONT></DIV>
<DIV><FONT size=2>enddefine</FONT></DIV>
<DIV><FONT size=2>
<DIV><FONT size=2>define class child as base</FONT></DIV>
<DIV><FONT size=2> testvar = 200</FONT></DIV>
<DIV> * metodu getVal tady nemusim nijak zminovat, protoze
jsem ji zdedil (a jeji umeni) od predka</DIV>
<DIV><FONT size=2>enddefine</FONT></DIV></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>obj = createobject('child')</FONT></DIV>
<DIV><FONT size=2>? obj.getVal()</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>vypise, pro mne logicky a dobre, 200</FONT></DIV>
<DIV><FONT size=2>Z meho pohledu - predek to dite naucil "vratit hodnotu
sveho testvar" a to dite ma tu hodnotu JINOU nez predek.</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV>s přáním hezkého dne / best regards<BR>Tomáš Chvátal<BR><A
href="mailto:tchvatal@fordiag.cz">tchvatal@fordiag.cz</A><BR></DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Původní zpráva ----- </DIV>
<DIV
style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>Od:</B> <A
title=Pablo@xpablo.cz href="mailto:Pablo@xpablo.cz">Pablo@xpablo.cz</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Komu:</B> <A title=hw-list@list.hw.cz
href="mailto:hw-list@list.hw.cz">HW-news</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Odesláno:</B> 8. září 2023 11:48</DIV>
<DIV style="FONT: 10pt arial"><B>Předmět:</B> Re: cplusplus dedeni</DIV>
<DIV><FONT size=2></FONT><FONT size=2></FONT><BR></DIV>No uz z principu ne -
ten getter (getval()) neni virtual a ani neni override, takze chcete po
predkovi (tride basecls), aby vratil hodnotu potomka. Proste to je spatne.
Vsadim se, ze basecls::testvar a childcls::testvar budou vracet spravne
hodnoty (i kdyz bych predpokladal aspon varovani pri prekladu ze tam jedna
promenna ma/dela stin druhe).<BR><BR>-- <BR>Pavel
Brychta<BR>http://www.xpablo.cz<BR><BR><ASIDE>---------- Původní e-mail
----------<BR>Od: Tomas Chvatal <tchvatal@fordiag.cz><BR>Komu: HW-news
<hw-list@list.hw.cz><BR>Datum: 8. 9. 2023 11:44:02<BR>Předmět: Re:
cplusplus dedeni</ASIDE><BR>
<BLOCKQUOTE data-email="tchvatal@fordiag.cz">Jak predek, tak potomek maji
stejnou promennou (tady se tomu nerika <BR>vlastnost ?) <BR>Tedy u potomka,
ktery ma napr. jiny "obvod hlavy" bych cekal, ze umi <BR>odpovedet spravnou
hodnotu sve hlavy ;-) <BR><BR>s přáním hezkého dne / best regards <BR>Tomáš
Chvátal <BR>tchvatal@fordiag.cz <BR><BR>----- Původní zpráva ----- <BR>Od:
"Jaroslav Buchta" <jaroslav.buchta@hascomp.cz> <BR>Komu:
<hw-list@list.hw.cz> <BR>Odesláno: 7. září 2023 19:32 <BR>Předmět: Re:
cplusplus dedeni <BR><BR><BR>Asi chybi virtual, ale to jde asi stejne jen na
metody. Jak by predek <BR>mohl vedet o promene potomka? <BR><BR>Dne
07.09.2023 v 19:28 Tomas Chvatal napsal(a): <BR>> Zdravim. <BR>>
<BR>> Muze se mi, prosim, nekdo pokusit vysvetlit, jak je to v C++
mysleno s <BR>> "dedenim" vlastnosti ? <BR>> Jsem "tridne postizeny" z
VFP a ted jsem u c++ dost zmateny ;-) <BR>> <BR>> Mam tridu "basecls"
(ta ma metody getval()) <BR>> Od ni dedim do druhe tridy "childcls". V te
mam vlastnost testvar <BR>> predefinovanou na jinou hodnotu. <BR>>
class basecls { <BR>> <BR>> public: <BR>> <BR>> static const int
testvar=100; <BR>> <BR>> int getval() { <BR>> <BR>> return
testvar; <BR>> <BR>> } <BR>> <BR>> }; <BR>> <BR>> class
childcls : public basecls { <BR>> <BR>> public: <BR>> <BR>>
static const int testvar=200; <BR>> <BR>> }; <BR>> <BR>>
<BR>> std::cout << base.getval() << std::endl; <BR>>
<BR>> std::cout << child.getval() << std::endl; <BR>>
<BR>> <BR>> <BR>> Proc se mi pri volani getval() na obou objektech
<BR>> vraci vzdy 100 ? <BR>> <BR>> Mate nejaky odkaz na pekne
vysvetleni jak to s tim dedenim zde je ? <BR>> Jsem jenom tak ovlivnen od
jinych jazyku, nebo je to s temi tridami v c++ <BR>> takove nejake divne,
az hnusne ? ;-) <BR>> <BR>> Diky predem. <BR>> <BR>> s přáním
hezkého dne / best regards <BR>> Tomáš Chvátal <BR>>
tchvatal@fordiag.cz <BR>> <BR>>
_______________________________________________ <BR>> HW-list mailing
list - sponsored by www.HW.cz <BR>> Hw-list@list.hw.cz <BR>>
http://list.hw.cz/mailman/listinfo/hw-list
<BR><BR><BR>_______________________________________________ <BR>HW-list
mailing list - sponsored by www.HW.cz <BR>Hw-list@list.hw.cz
<BR>http://list.hw.cz/mailman/listinfo/hw-list
<BR><BR>_______________________________________________ <BR>HW-list mailing
list - sponsored by www.HW.cz <BR>Hw-list@list.hw.cz
<BR>http://list.hw.cz/mailman/listinfo/hw-list <BR></BLOCKQUOTE>
<P>
<HR>
<P></P>_______________________________________________<BR>HW-list mailing
list - sponsored by
www.HW.cz<BR>Hw-list@list.hw.cz<BR>http://list.hw.cz/mailman/listinfo/hw-list<BR></BLOCKQUOTE></BODY></HTML>