<!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>Dekuji. S tou static prom. jsem to uz pochopil. </FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2></FONT><FONT size=2>zkousim kod co posilate:</FONT></DIV><FONT
color=#0000ff size=2 face=Consolas><FONT color=#0000ff size=2
face=Consolas><FONT color=#0000ff size=2 face=Consolas>
<DIV><FONT color=#000000
face="Courier New">class</FONT></FONT></FONT></FONT><FONT size=2><FONT
size=2><FONT face="Courier New"> basecls {</FONT></DIV></FONT></FONT><FONT
color=#0000ff size=2><FONT color=#0000ff size=2><FONT color=#0000ff size=2>
<DIV><FONT color=#000000
face="Courier New">public</FONT></FONT></FONT></FONT><FONT size=2><FONT
size=2><FONT face="Courier New">:</FONT></DIV>
<DIV></FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2><FONT
color=#0000ff size=2 face="Courier New">int</FONT></FONT></FONT><FONT
size=2><FONT size=2><FONT face="Courier New"> testvar;</FONT></DIV>
<DIV><FONT face="Courier New">basecls() : testvar(100) {}</FONT></DIV>
<DIV></FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2><FONT
color=#0000ff size=2 face="Courier New">int</FONT></FONT></FONT><FONT
size=2><FONT size=2><FONT face="Courier New"> getval() {</FONT></DIV>
<DIV></FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff size=2><FONT
color=#0000ff size=2 face="Courier New">return</FONT></FONT></FONT><FONT
size=2><FONT size=2><FONT face="Courier New"> testvar;</FONT></DIV>
<DIV><FONT face="Courier New">}</FONT></DIV>
<DIV><FONT face="Courier New">};</FONT></DIV></FONT></FONT><FONT color=#0000ff
size=2><FONT color=#0000ff size=2><FONT color=#0000ff size=2>
<DIV><FONT color=#000000 face="Courier New"></FONT> </DIV>
<DIV><FONT color=#000000
face="Courier New">class</FONT></FONT></FONT></FONT><FONT
face="Courier New"><FONT size=2><FONT size=2> childcls : </FONT></FONT><FONT
size=2><FONT size=2><FONT size=2>public</FONT></FONT></FONT><FONT size=2><FONT
size=2> basecls {</DIV></FONT></FONT></FONT><FONT color=#0000ff size=2><FONT
color=#0000ff size=2><FONT color=#0000ff size=2>
<DIV><FONT color=#000000
face="Courier New">public</FONT></FONT></FONT></FONT><FONT size=2><FONT
size=2><FONT face="Courier New">:</FONT></DIV>
<DIV></FONT></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2><FONT
color=#008000 size=2><FONT face="Courier New">//int
testvar;</FONT></DIV></FONT></FONT></FONT><FONT size=2><FONT size=2>
<DIV><FONT face="Courier New">childcls() : testvar(200) {}</FONT></DIV>
<DIV><FONT face="Courier New">};</FONT></DIV>
<DIV><FONT face="Courier New"></FONT> </DIV>
<DIV><FONT face="Courier New">a pri compilaci hlasi <FONT size=1
face=Consolas><FONT size=1 face=Consolas>na radku <FONT
face="Courier New">childcls() : testvar(200) {}:</FONT>
<P>error C2614: 'childcls' : illegal member initialization: 'testvar' is not a
base or member</P>
<P>Nechapu, proc nemuze inicializovat vlastnost ktera je z basecls zdedena ?</P>
<P><FONT size=2 face=Arial>Pokud ale constructor v childcls prepisu takto, tak
uz to projde a i spravne funguje:</FONT></P><FONT face=Consolas><FONT
face=Consolas></DIV>
<DIV><FONT size=2 face="Courier New">childcls() {</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> testvar =
200;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">}</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">Proc?</FONT></DIV>
<DIV><FONT size=2
face="Courier New"></FONT> </DIV></FONT></FONT></FONT></FONT></FONT></FONT></FONT>
<DIV>>Jenomze jste tomu potomkovi tu metodu neprepsal, ale volate metodu
predka</DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV>A proc musim neco PREPSAT ? Neni jednim z principu objektoveho programovani
DEDICNOST ?</DIV>
<DIV>Cekal bych, ze kdyz predek neco umi, ze to automaticky pak umi i potomek,
ale pracuje samo. s hodnotami </DIV>
<DIV>svych "mladsich" vlastnosti/promennych.</DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>
<DIV><FONT size=2>Rad bych do toho obj.chovani ++ka nejak vice proniknul. Pak
clovek tak nejak lepe vi, jak psat zdravejsi</FONT></DIV>
<DIV><FONT size=2>a ve vysledku i rychlejsi a mensi kod.</FONT></DIV>Mne by
zajimalo, JAK je to MYSLENE. Co vede k tomuto, dle meho, divnemu
chovani.</FONT></DIV>
<DIV><FONT size=2>Neprijde vam to nelogicke ?</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 12:09</DIV>
<DIV style="FONT: 10pt arial"><B>Předmět:</B> Re: cplusplus dedeni</DIV>
<DIV><FONT size=2></FONT><FONT size=2></FONT><FONT size=2></FONT><FONT
size=2></FONT><FONT size=2></FONT><BR></DIV>
<DIV>Jenomze jste tomu potomkovi tu metodu neprepsal, ale volate metodu
predka, ktery ma jasne dane to, ze vrati hodnotu, kterou ma vratit. V tom
priklade v jazyku, ktery jste poslal neni zadny static. I V c++ to jde napsat
stejne, ale musite vedet, co delate...</DIV>
<DIV>class base {</DIV>
<DIV>protected:</DIV>
<DIV> const int testvar;</DIV>
<DIV>public:</DIV>
<DIV> base() : testvar(100) {}</DIV>
<DIV> int getval() {</DIV>
<DIV> return testvar;<BR></DIV>
<DIV> }<BR></DIV>
<DIV>};</DIV>
<DIV><FONT size=2></FONT><FONT size=2></FONT><FONT size=2></FONT><FONT
size=2></FONT><FONT size=2></FONT><FONT size=2></FONT><FONT
size=2></FONT><BR></DIV>
<DIV>class child : public base</DIV>
<DIV>{</DIV>
<DIV>public:</DIV>
<DIV> child() : testvar(200) {}<BR></DIV>
<DIV>};</DIV>
<DIV>by mohlo fungovat (pisu to z ruky, takze bez naroku na
spravnost...)<BR></DIV>-- <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 12:01:43<BR>Předmět: Re:
cplusplus dedeni</ASIDE><BR>
<BLOCKQUOTE data-email="tchvatal@fordiag.cz">
<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><FONT size=2></FONT> </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><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></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>_______________________________________________
<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>