Перейти к содержанию
    

Как делить программу на объекты?

On 2/8/2019 at 2:22 PM, ViKo said:

Нет иного программирования, кроме ООП, и С++ его пророк. Однако, не могу понять, как следовать этой вере.

Есть у меня Com-порт, по которому компьютер передает команды прибору и получает результаты их выполнения. В микроконтроллере делаю кольцевые буферы для приема и передачи. Чтобы писать и читать в них, имею по паре указателей. Чтобы контролировать, что указатели в пределах буферов, имею пару констант - границ. Принимаю и отправляю сообщения в прерываниях. Для разбора принятой команды - своя функция, для выполнения - несметная масса функций. Ответ опять же в буфере надо подготовить.

Вопрос - Какой класс объекта мне создать? Хочу Com_port, например. Но функции выполнения команд, логично, в нем быть не должны. Тогда и разбор команды - тоже? Тогда доступ к буферам должен быть снаружи класса. И прерывания - их же не спрячешь в класс?

В общем, как раньше не мог сообразить, так и сейчас. :to_become_senile:И терпеть нет мочи. Подскажите, что и как робить?

а кто вам такое вообще сказал? ООП чрезвычайно спорная вещь. Применима очень ограниченно, в эмбеддед нужна в основном повыпендриваться "смотрите как я умею" 

Из плюсов полезны в основном деструктуры-конструкторы, для автоматического освобождения и захвата ресурсов по выходу из стекового фрейма. А иначе.. иначе видел я такие программы.. 100500 прослоек, чуть ли не множественное наследование, в итоге черт ногу сломит и главное - это нефига не помогает и практически не нужно. Типа "расширяемая програма". Да вот только расширять ее никто не просит, продано - забыто.  Причем в своих виртуальных перегрузках при отладке аавтор матерится более всех, т.к. толком не знает какой именно сейчас метод будет вызван. А если объект еще и динамически строится удаленно. Короче потеха.

А хочется повыпендриваться - так пора уходить от императивного программирования вообще, скоро на вас будут как на дедов с асмом 51 го смотреть с этими 30летней давности плюсами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 minutes ago, DASM said:

Из плюсов полезны в основном деструктуры-конструкторы, для автоматического освобождения и захвата ресурсов по выходу из стекового фрейма.

Чувствую очередная религиозная война назревает)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, haker_fox said:

Чувствую очередная религиозная война назревает)

Неа, было бы с кем воевать. Мимо проходил, копаться нет желания

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, DASM said:

пора уходить от императивного программирования вообще

Что такое "императивное программирование"?

Куда уходить? К чему приходить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, DASM, читать вас, как всегда, интересно. Никто не зовёт нырять в ООП сразу на всю глубину, будем погружаться постепенно, по мере необходимости. Кое-что из C++11 я уже использую. Лишнего стараюсь не делать. И повторно использовать свои же программы неизменными не предполагаю. Однако, попрактиковаться в ООП считаю правильным. Не одни микроконтроллеры программируем-с. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, ViKo said:

Кое-что из C++11 я уже использую.

Тут самое главное понимать, что ООП это не Си++ (03, 11, 14, 17...). Turbo Pascal 7.0, если мне не изменяет память тоже был объектно-ориентированным, не говоря уж о дельфи...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...