cplusplus dedeni

Pablo na xpablo.cz Pablo na xpablo.cz
Pátek Září 8 12:09:09 CEST 2023


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

class base {

protected:

  const int testvar;

public:

  base() : testvar(100) {}

  int getval() {

    return testvar;


  }


};




class child : public base

{

public:

  child() : testvar(200) {}


};

by mohlo fungovat (pisu to z ruky, takze bez naroku na spravnost...)

-- 
Pavel Brychta
http://www.xpablo.cz

---------- Původní e-mail ----------
Od: Tomas Chvatal <tchvatal na fordiag.cz>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 8. 9. 2023 12:01:43
Předmět: Re: cplusplus dedeni
"  
>takze chcete po predkovi (tride basecls), 

Ja to preci chci v jednom dotazu po predkovi, ale v druhem po potomkovi.

A prave se divim, ze i ten potomek vraci hodnotu z predka.

 
 
 
 
Spatne to mozna je, ale ve videni c++ ;-)

 
 
VFP kod:

define class base as custom

    testvar = 100

    proc getVal

        return this.testvar

    endproc

enddefine


define class child as base

    testvar = 200

    * metodu getVal tady nemusim nijak zminovat, protoze jsem ji zdedil (a 
jeji umeni) od predka

enddefine


 
 
obj = createobject('child')

? obj.getVal()

 
 
vypise, pro mne logicky a dobre, 200

Z meho pohledu - predek to dite naucil "vratit hodnotu sveho testvar" a to 
dite ma tu hodnotu JINOU nez predek.

 
 
s přáním hezkého dne / best regards
Tomáš Chvátal
tchvatal na fordiag.cz(mailto:tchvatal na fordiag.cz)

" 
----- Původní zpráva ----- 

Od: Pablo na xpablo.cz(mailto:Pablo na xpablo.cz) 

Komu: HW-news(mailto:hw-list na list.hw.cz) 

Odesláno: 8. září 2023 11:48

Předmět: Re: cplusplus dedeni



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).

-- 
Pavel Brychta
http://www.xpablo.cz

---------- Původní e-mail ----------
Od: Tomas Chvatal <tchvatal na fordiag.cz>
Komu: HW-news <hw-list na list.hw.cz>
Datum: 8. 9. 2023 11:44:02
Předmět: Re: cplusplus dedeni
"Jak predek, tak potomek maji stejnou promennou (tady se tomu nerika 
vlastnost ?) 
Tedy u potomka, ktery ma napr. jiny "obvod hlavy" bych cekal, ze umi 
odpovedet spravnou hodnotu sve hlavy ;-) 

s přáním hezkého dne / best regards 
Tomáš Chvátal 
tchvatal na fordiag.cz 

----- Původní zpráva ----- 
Od: "Jaroslav Buchta" <jaroslav.buchta na hascomp.cz> 
Komu: <hw-list na list.hw.cz> 
Odesláno: 7. září 2023 19:32 
Předmět: Re: cplusplus dedeni 


Asi chybi virtual, ale to jde asi stejne jen na metody. Jak by predek 
mohl vedet o promene potomka? 

Dne 07.09.2023 v 19:28 Tomas Chvatal napsal(a): 
> Zdravim. 
> 
> Muze se mi, prosim, nekdo pokusit vysvetlit, jak je to v C++ mysleno s 
> "dedenim" vlastnosti ? 
> Jsem "tridne postizeny" z VFP a ted jsem u c++ dost zmateny ;-) 
> 
> Mam tridu "basecls" (ta ma metody getval()) 
> Od ni dedim do druhe tridy "childcls". V te mam vlastnost testvar 
> predefinovanou na jinou hodnotu. 
> class basecls { 
> 
> public: 
> 
> static const int testvar=100; 
> 
> int getval() { 
> 
> return testvar; 
> 
> } 
> 
> }; 
> 
> class childcls : public basecls { 
> 
> public: 
> 
> static const int testvar=200; 
> 
> }; 
> 
> 
> std::cout << base.getval() << std::endl; 
> 
> std::cout << child.getval() << std::endl; 
> 
> 
> 
> Proc se mi pri volani getval() na obou objektech 
> vraci vzdy 100 ? 
> 
> Mate nejaky odkaz na pekne vysvetleni jak to s tim dedenim zde je ? 
> Jsem jenom tak ovlivnen od jinych jazyku, nebo je to s temi tridami v c++ 
> takove nejake divne, az hnusne ? ;-) 
> 
> Diky predem. 
> 
> s přáním hezkého dne / best regards 
> Tomáš Chvátal 
> tchvatal na fordiag.cz 
> 
> _______________________________________________ 
> HW-list mailing list - sponsored by www.HW.cz 
> Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list 


_______________________________________________ 
HW-list mailing list - sponsored by www.HW.cz 
Hw-list na list.hw.cz 
http://list.hw.cz/mailman/listinfo/hw-list 

_______________________________________________ 
HW-list mailing list - sponsored by www.HW.cz 
Hw-list na list.hw.cz 
http://list.hw.cz/mailman/listinfo/hw-list 
" 

----------------------------------------------------------------------------


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
" _______________________________________________ 
HW-list mailing list - sponsored by www.HW.cz 
Hw-list na list.hw.cz 
http://list.hw.cz/mailman/listinfo/hw-list 
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230908/ba1259ce/attachment.htm>


Další informace o konferenci Hw-list