<html><body><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><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> </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>
  </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></body></html>