Комментарии 4
Пример файла реализации для класса Kotofey у Вас написан не правильно, так как
void Murlicat(String gladit)
{
//......некая реализация
}
— это функция, не принадлежащая никакому классу. Функция (метод) класса Kotofey должна быть записана так:void Kotofey::Murlicat(String gladit)
{
//......некая реализация
}
Безусловно, ваш вариант является более корректным. Я тут почему-то не посчитал нужным ограничить область видимости классом (почему-то держал в голове, что класс у нас может быть только один, что может быть некорректно в более-менее большом проекте).
Дело не в области видимости. Если в заголовочнике Вы объявляете класс, то и реализацию надо писать для функций класса. Если же Вам нужны свободные функции, то и делайте их свободными и в заголовочнике, и в файле реализации.
Использовать класс для ограничения области видимости обычных функций конечно можно, объявив их статическими функциями класса, но вообще-то в C++ для этого давно существует namespace.
Использовать класс для ограничения области видимости обычных функций конечно можно, объявив их статическими функциями класса, но вообще-то в C++ для этого давно существует namespace.
Что-то мне кажется, в Вашем варианте объекта Kotofey не будет создано.
А теперь посмотрим чуть более сложный пример, «объектно-ориентированное программирование» у нас или где :)
компилятор спросит где реализация методов для объекта.
Чтобы всё это было несколько интересней, мы можем даже немного усугубить ситуацию, добавить модификаторы доступа:
public
иprotected
.
А собственно для чего усугублять то? Вы планируете наследование?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пишем свою библиотеку под Arduino