Наследование, базовые методы и
- Войдите на сайт для отправки комментариев
Хочу сделать обвеску библиотеки EthernetServer
чтобы выводить в порт то, что отправляется ей методом print
Делаю наследника
class VEthernetServer : public EthernetServer
{
public:
VEthernetServer(uint16_t port):EthernetServer(port){};
size_t print(const __FlashStringHelper *);
size_t print(const String&);
size_t print(const char[]);
size_t print(char);
........
}
#include "EthernetServer.h"
size_t print(const __FlashStringHelper * f)
{
return EthernetServer::print(f);
}
size_t print(const String & s)
{
return EthernetServer::print(s);
};
size_t print(const char[] ch)
{
Serial.print(ch);
return EthernetServer::print(&ch);
};
size_t print(char c)
{
return EthernetServer::print(c);
};
.....
Но получаю ошибки:
первая - VEthernetServer.cpp:21:39: error: cannot call member function 'size_t Print::print(char)' without object
вторая - error: expected ',' or '...' before 'ch' size_t print(const char[] ch)
Верно получаешь. Что это вообще такое ты изобретаешь? Для начала пройдись по всей иерархии классов и определисть как print работает.
Да я не изобретаю....
Смысл такой - есть готовый проект, который использует библиотеку EthernetServer, посылая ей из разных уголков проекта методами print разные значения (обмен данными).
Мне хочется сделать что-то типа "сниффера", повесив логгер на каждый из методов print, дабы не лазать по всему могучему проекту и не вставлять везде Serial.print.
Идея была унаследовать класс и в каждом из методов print поставить вывод в лог И ВЫЗОВ ОСНОВНОГО print.
Это, наверное, моё Java "мышление". Там то это легко через override и super.print(c), а тут что-то ругается
переопредели в своём классе метод write(), он виртуальный
Так в проекте во множестве уголков используется именно print
если это то, что я думаю, любой из print() внутри вызывает write() для вывода одного символа, вот здесь и перехватывай, единственной функцией в единственном месте.
Для начала пройдись по всей иерархии классов и определисть как print работает.
для особо недоходчивых повторю
klvd,
1.
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
если Вы этого не поймёте и будете продолжать выкладывать код так, как сейчас, я больше не буду делать замечаний - просто слиняю из темы. Разбирайтесь сами.
Читайте любой учебник и попытайтесь понять разницу между классом и экземпляром (объектом) класса.
Не понимаю, что Вы хотели написать, но то, что написано является бессмысленным набором символов. Поэтому никак не могу прокомментировать.