Re: Ukazka C++ pro děti

Pavel Brychta pavel.brychta na duhasys.eu
Středa Březen 31 08:13:06 CEST 2021


Přesně tak - konstruktor by měl pouze nastavit vnitřní proměnné a stavy 
daného objektu. Pokud například chci použít ten GPIO, který je 
"normálně" obsazený LED diodou jako vstup, který umožní něco nouzově 
inicializovat, tak to takto použít nejde - statický konstruktor třídy 
clLED nastaví ten GPIO jako výstup už při vytváření objektu. Pokud 
nastavení fyzického GPIO uděláte až v init(), begin(), setup(), 
start()..., tak do té doby můžete ten GPIO použít i jinak. Toto se týká 
jakékoliv periferie v MCU, kterou chcete obsluhovat objektově. A pokud 
tu inicializaci potřebujete proto, aby ta LEDka nesvítila od zapnutí 
napájení, tak pak je chyba v hw designu, kterou sice je možné částečně 
napravit ve fw, ale je třeba na to někde upozornit a nemělo by tohle 
řešení být pravidlem. Dalším závažným problémem pak je v clTlac::stisk() 
to nešťastné přímé volání globálního objektu Led.blikat() a statická 
proměnná b - tady bych udělal to, že b přesunu asi jako proměnnou 
objektu clTlac a rozhodně nebudu volat Led.blikat() - buď to udělejte 
jako callback, nebo registrujte referenci na objekt Led přímo ve třídě 
clTlac.

Pavel Brychta

Dne 30. 03. 21 v 21:58 Miroslav Šinko napsal(a):
> Osobne sa drzim toho, ze v konstruktore by sa mal "nastavit" len dany 
> objekt, t.j. jeho premenne. Konkretne tuto si myslim, ze nie je dobry 
> napad inicializovat registre procesora. Objekty su vytvarane ako 
> globalne premenne, jednoducho povedane ktovie kedy a ktovie v akom 
> poradi. Nastavenie registrov procesora by som v classach vyclenil do 
> metod s nazvom povedzme init a tie volal v maine namiesto komentara 
> "tady nic neni: inicializace je v konstruktorech".
>
> miro
>
> On 30.3.2021 20:08, Pavel Hudecek wrote:
>> Dobrý den všem,
>>
>> Udělal jsem malou ukázku programu v C++ pro děti na kroužek, prosím o
>> zhodnocení, zda v tom nejsou nějaký nevhodný věci:-)
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list