Re: Ukazka C++ pro děti

Jiří Nesvacil nesvacil na posys.eu
Čtvrtek Duben 1 16:23:53 CEST 2021


To se dostáváte do oblasti návrhových vzorů tj. co na co má odkazovat, 
co má co vyvolávat, ... . Já to bral čistě zápisem tj. vyhnout se 
podobným zápisům jako (*ptrfce)() . A poté můžete v c++ použít virtual a 
nějaký návrhový vzor tj. co na co odkazuje nebo v čem je zabaleno.

Jirka


Dne 01.04.2021 v 15:23 Jaroslav Buchta napsal(a):
> Myslim, ze pojmem callback se mysli neco jineho, nez virtualni funk... 
> sry metody. Ty bych spis prirovnal k ukazatelum na funkce, ktere v 
> klasickem C byvaji soucasti datovych struktur a to umoznuje v podstate 
> totez - podle konkretniho obsahu struktury, ktera muze byt univerzalni 
> treba pro vice zarizeni, nebo obsahuje nejakou spolecnou zakladni 
> podstrukturu a v ni se nastavi ukazatel ne prislusnou funkci majici 
> stejne parametry... V podstate se tak da docela dobre simulovat to 
> objektove programovani, jen to neni automaticky a musi se u toho 
> premyslet.
> Callback je podle me spis neco jako event treba v C#, v C++ je asi 
> take neco takoveho, proste se nastavi nejaky ukazatel na nejakou 
> funkci a ta se pak vola pri nejake udalosti.
>
> Dne 01.04.2021 v 13:56 Jiří Nesvacil napsal(a):
>> K tomu zjednodušení ještě vidím v základu minimálně:
>>
>> a/ V C definujete a používáte callback. Ten zápis je poměrně šílený a 
>> zdrojem chyb. Místo toho máte v c++ virtaul tj. před název 
>> metody(funkce) napíšete tohle jedno slovo a v potomku si každý ten 
>> callback napíše tj. jen opíše definici metody. Tím, že to je takto 
>> snadné, tak vzniká spoustu metod OnNěco... .
>>
>> b/V C se odkazujete "." nebo "->" pokud přejdete na referencované 
>> argumenty, tak použijete všude jen "." a máte zase o jednu starost méně.
>>
>> c/Místo globálních proměnných dáte vše do objektu. Pokud potřebujete 
>> použít vícekrát, máte vyhráno... .
>>
>> Jirka
>>
>>
>>> Ano, máte pravdu - já jsem také odkojený assemblerem pro MCS48 a 
>>> přechod C->C++ mi nejvíce usnadnilo to, že jsem si uvědomil, že 
>>> původní C++ byl jen preprocesor k C, takže každý objekt je jen shluk 
>>> procedur a funkcí (ano, některé jsou trošku speciální, volané 
>>> "neviditelně") a datová struktura a všechno tohle drží pohromadě 
>>> magický ukazatel this. Kompilátor ví, co k čemu patří a zavolá 
>>> odpovídající proceduru/funkci, které podstrčí právě ten neviditelný 
>>> this ukazatel ke zbytku argumentů. Jasně, je to zjednodušené, ale 
>>> pro základní pochopení si myslím, že to stačí.
>>>
>>> Pavel Brychta
>>>
>>>
>>> _______________________________________________
>>> 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

-- 
Tento e-mail byl zkontrolován na viry programem AVG.
http://www.avg.cz



Další informace o konferenci Hw-list