cplusplus dedeni

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


Uz jsem to psal, cely problem je, ze jste pouzil klicove slovo static u te 
promenne. Nevim, ceho jste chtel dosahnout, ale naridil jste kompilatoru to,
ze ma existovat jen jedna promenna testvar pro vsechny instance te tridy a 
take vsechny potomky. Protoze je public, tak na ni muze kdokoliv odkudkoliv 
pomoci volani <jmenotridy>::<jmenopromenne>. Cela problematika statickych 
promennych a metod pro tridy sice neni uplne slozita, ale zaslouzi si 
nastudovat...

-- 
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:56:48
Předmět: Re: cplusplus dedeni
"Dekuji moc. 
Toto presne jsem zkusil a vznikla dalsi otazka :-) 

Proc kdyz mam v child tride zminenou tu ?samou? vlastnost, tak to prestane 
dedit ? 
Co to je za koncept ? dedeni ? 
Jak je to uvnitr c++ implementovane a proc ? 

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

----- Původní zpráva ----- 
Od: "Jan Waclawek" <konfera na efton.sk> 
Komu: "HW-news" <hw-list na list.hw.cz> 
Odesláno: 7. září 2023 21:27 
Předmět: Re: cplusplus dedeni 


#include <iostream> 

class basecls { 

public: 

int testvar=100; 

int getval() { 

return testvar; 

} 

}; 

class childcls : public basecls { 
// int testvar; 
public: 

childcls() { 
testvar = 200; 
} 

}; 


int main(){ 
basecls base; 
childcls child; 
std::cout << base.getval() << std::endl; 
std::cout << child.getval() << std::endl; 
} 


Skuste si to so zakomentovanym a s odkomentovanym riadkom int testvar; 

wek 



----- Original Message --------------- 


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 
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230908/c10ed1b3/attachment.htm>


Další informace o konferenci Hw-list