Witam!
Problem jest natury programistycznej.
Zacznę może od kodu:
Mam problem z odróżnieniem przez kompilator typu zapisanego w pamięci programu a typu w pamięci RAM czyli typu char* od const char*. Chodzi mi dokładnie o trzy ostatnie linijki; przeciążony jest operator << na typach char* i int*. Próbowałem zrobić to na różne sposoby i nic. W końcu utworzyłem to na osobnych operatorach, nie jest to wygodne gdyż nie można ich łączyć.
Jeśli ktoś posiada jakąś koncepcje jak sobie z tym poradzić i podciągnąc to wszystko pod jeden operator, to proszę o pomoc.
Problem jest natury programistycznej.
Zacznę może od kodu:
//LCD class
class LCD {
public:
LCD(); //INIT
void put(char *text); //PUT TEXT ON LCD
#ifdef BACKLIGHT
void backlight(bool status); //TURN OFF/ON BACKLIGHT
#endif
void put_p(const char *text); //PUT TEXT FROM PGM SPACE
void put(int16_t number, uint8_t base); //PUT NUMBER ON LCD
void gotoxy(uint8_t x, uint8_t y); //Set cursor position
void cls(void); //CLEAR LCD
void define_char(uint8_t number, uint8_t p1, uint8_t p2, uint8_t p3, uint8_t p4, uint8_t p5, uint8_t p6, uint8_t p7, uint8_t p8); //Define user-defined chars
private:
void send(uint8_t data, bool mode); //SEND DATA OR COMMAND
};
//
LCD &operator<<(LCD &lcd, uint16_t val);
LCD &operator<<(LCD &lcd, char *val);
LCD &operator<(LCD &lcd, const char *val);
Mam problem z odróżnieniem przez kompilator typu zapisanego w pamięci programu a typu w pamięci RAM czyli typu char* od const char*. Chodzi mi dokładnie o trzy ostatnie linijki; przeciążony jest operator << na typach char* i int*. Próbowałem zrobić to na różne sposoby i nic. W końcu utworzyłem to na osobnych operatorach, nie jest to wygodne gdyż nie można ich łączyć.
Jeśli ktoś posiada jakąś koncepcje jak sobie z tym poradzić i podciągnąc to wszystko pod jeden operator, to proszę o pomoc.
