<!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>