Jak v C / Arduino pridat funkci do knihovny?

Miroslav Mraz mrazik na volny.cz
Sobota Leden 20 10:00:33 CET 2024


Ano, to je čisté řešení, bohužel má jedinou vadu - nebude to fungovat. 
Abyste mohl v potomkovi přistoupit k privátním datům, musíte v předkovi 
udělat něco jako
friend dispLcdVfd;
a abyste to mohl udělat, musíte předem deklarovat class dispLcdVfd.
Takže stejně musíte upravit původní hlavičku. Ale to už je snad lepší 
inlinovat tu svou funkci přímo do původní hlavičky.
void bright (uint8_t brg) { command (LCD_FUNCTIONSET | _displayfunction 
| brg); }
V c++ lze obvykle vymyslet více řešení, ale které je správné záleží spíš 
na vkusu daného uživatele.

Mrazík

On 20. 01. 24 7:53, Pavel Hudeček wrote:
> Jestli je to normální C++, tak udělat vlastní knihovnu, která přes 
> dědičnost rozšíří tu původní o požadované metody.
> 
> Nějak takhle:
> 
> soubor dispLcdVfd.h ------
> 
> #include "LiquidCrystal.h"
> 
> class dispLcdVfd : LiquidCrystal {
> 
> public:
>      void bright(uint8_t brg);
> 
> }
> 
> soubor dispLcdVfd.cpp -----
> 
> #include "dispLcdVfd.h"
> 
> void dispLcdVfd::bright(uint8_t brg) {
>      command(LCD_FUNCTIONSET | _displayfunction | brg);
> }
> 
> PH


Další informace o konferenci Hw-list