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