ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
27 июня
999031 Топик полностью
Связанные сообщения
CppFk0
Embedded Template Library (iar arm 9.20.4)2022-05-18
Процитирую сам себя: "Разработка ПО большого объёма на языках с динамической типизацией, как правило затруднена, но в целом скор...2020-10-30
В C++ доступна вся C-библиотека. Когда C++ сам себе разумеется нет, а как ты себе представляешь? Можешь написать свою реализацию...2020-09-23
Классика жанра же: когда делаешь макрос, его всегда, кроме случаев когда невозможно, нужно делать выражением (а не оператором --...2020-09-11
Тебе не нужен STM32 + "Си". Тебе нужен Си отдельно и STM32, если вообще нужен, отдельно. Кусочно-выборочно процитирую сам себя: ...2020-09-10
Ты хочешь static_if, которого в C++ в чистом виде нет. constexpr if это совсем не то, т.к. он неизбежно будет компилиров...2020-07-02
В общем случае может быть 2-3 подхода перечисленных ниже. В базе всегда SFINAE -- шаблон откидывается и просматриваются следующи...2020-07-02
Есть мысль перейти на RTOS для снижения временных затрат на реализацию программной части, отладку и профилировку. Важна поддержк...2020-06-18
Пользуйся:2020-06-11
Я говорю про другую типизацию. Не про int или long, и даже не про int или char*. Программа на ООП-языке существует в рамкой неко...2019-12-19
C#, Java и тем более Javascript -- это совсем другой код, нежели C++. На порядок менее оптимальный, если конечно задача не своди...2019-12-19
С языком очень даже связано. Компилирующие языки со статической типизацией (C++, C#, Java, C, Pascal) пропускают гораздо меньше ...2019-12-17
Не совсем. C++ -- это уход в сторону _типизированных_ ЯВУ, а Java или C# -- подвижка в сторону "управляемого кода" и что наиболе...2019-11-03
Процитирую самого себя: "Зачем вообще использовать "экспоненциальное скользящее среднее", кроме как от бедности (не хватает ресу...2019-11-01
Мне какой-то куб для Renesas вспомнился, лет 6 тому назад. Они хвалились, что у них код компилится сразу, как его пишешь. В итог...2019-10-25
Да конечно, ну вот расскажи, как оно работает -->2019-10-25
Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, ...2019-10-18
Не соглашусь, во-первых я чётко подвёл к мысли, что возможны разные классификации, существование одних не запрещает другие. И ес...2019-03-03
Увы, часто нет. Ардуины не просто так возникли. МК подросли и стали возможны другие подходы к разработке. Видно же что делается:...2019-03-03
С этого стоило и начинать. С того, что язык скриптовый. И это уводит совсем в другую сторону, практически в параллельную вселенн...2019-03-01
EvgenyCD! Смотри ссылку! Я понял, что это круче чем swig, например, в определённых обстоятельствах. Правда руки применять надо...2017-02-09
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
fk0, легенда (26.04.2020 11:13, просмотров: 650) ответил Argon на Возможно, в этой задачке - самая мякотка ООП: Это задачка на курсах по Java. Вроде умом понимаю что и как работает, а сэрдцем принять не могу :)
Надо понимать, что класс -- это не структура. Применительно к C++ мне больше нравится слово тип. Тип -- это сущность существующая преимущественно в момент компиляции и обладающая некоторыми свойствами, в машинном коде она превращается в функции и структуры в конечном счёте, а то и вовсе ни во что не превращается, если все вычисления проделаны при компиляции. Тип на самом деле это очень легковесная конструкция. Это лишь абстракция служащая для определения отношений между 

типами, для выбора используемых функций в зависимости от типа, ещё она может нести некий набор данных, или это может быть вообще лишь одна функция. И можно говорить, что на самом деле программирование отчасти имеет декларативный характер и ведётся в пространстве типов. В Java всё приходится делать классом и злоупотреблять наследованиями, т.к. там нет других механизмовс сделать то же, как например в C++ где есть шаблоны. Конечно шаблоны тоже оперируют над типами, но типом может оказаться и свободная функция, и в C++ есть argument dependent lookup и понятие friend функций объявленных в том же namespace. Те же функции сортировки могут быть просто свободными функциями. Могут быть функциональными классами. Могут быть функциями-членами классов над которыми они выполняют вычисления. Потом, возможно в данном примере не очень правильный "ООП-дизайн" и злоупотребление наследованиями идет от этого, возможно это Java-специфично (в C++ например возможно множественное наследование). Вообще технически наследование -- это наследование свойств типов (в compile time) и агрегация данных в рантайме. Если бы я делал, я бы постарался по возможности разбивать на плоскую структуру состоящую из множествя независимых типов, классов, функций. Без 7-и уровневой вложенности классов или наследований. И широко использовал бы возможность параметризации шаблонов классов или функций другими типами (классов или функций). Преимущество шаблонов как раз в том, что в них действует "утиная типизация", когда можно подсунуть что угодно обладающее нужными видимыми свойствами, без сложных иерархий наследования интерфейсов.

[ZX]
Ответы