koluna 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Здравствуйте! Что вы думаете по поводу ООП для микроконтроллеров AVR на языке C++? Благодарю заранее! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Нравиться пишите на С++ для AVR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tAmega 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Смотря какой AVR, если 8 битные модели, то ООП это роскошь, и программировать на нем конечно можно, но по моему убеждениею неэффективно и громоздко. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба и программировать на нем конечно можно, но по моему убеждениею неэффективно и громоздко. Понимаете ли, многие не видят разницы между ООП, C++, STL и т.д. Конечно, темплейт типа vector уложит бедный AVR в могилу тут же. Некоторые фичи ООП имеет смысл применять для упрощения писанины - наглядный пример - устройство критической секции в ScmRTOS (хотя, лично мне больше нравится цикл for). Часто полезна перегрузка операций - опять же, для уменьшения писанины. Полновесная работа с объектами обычно упирается в ограниченность ресурсов. Хотя, есть любители, которые пользуют это дело во всю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tAmega 0 10 мая, 2009 Опубликовано 10 мая, 2009 (изменено) · Жалоба Видел код на C++ для AVR, нашел единственное объяснение, для чего там был использован C++, это идеальный способ существенно запутать все что можно запутать. Код был идеально красиво написан, со всеми отступами и пояснениями. Но понять что там наверчено удалось с 18й попытки. Такого иезуитского подхода я прежде не видел, но взял на заметку, как именно надо путать следы, чтобы стать незаменимым для сопровождения данной конкретной программы. Изменено 10 мая, 2009 пользователем tAmega Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба нашел единственное объяснение, для чего там был использован C++, это идеальный способ существенно запутать все что можно запутать. Думаете на Plain C нельзя запутать? main(O,_){for(_?--O,main(O+2,"?DKwhQH?b@`JD|?dA@TIT?qpEzR?hB@hTB?BHB@hTB" "?Po@SdB?"[O]):5;O&&_>1;printf("%s",_-'?'?_&1?"||":" ":(_=0,"\n")),_/=2);} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Программирование в ООП обычно требует динамического выделения памяти. Что является чистым идиотизмом в embedded. Ибо в автокомпьютере, которые управляет зажиганием не должно быть ситуаций - "не могу выделить память для объекта". А в этм случае динамическое выделение лишается какого-либо смысла. Значит его вполне заменяет статическое. (Т.е. динамическое выделение памяти не имеющее отказов в условиях конечной памяти - есть статическое выделение). А это значит, что все объекты создаются заранее. А в системе где все заранее определено я бы использовал ООП исключительно из-за личных пристрастий (к примеру, нравится так абстрагироваться). Я, лично, сишному менеджеру кучи не доверяю и никогда не использую. Неужели я могу доверять механизмам ООП, которые скрыты еще сильнее? Ембеддерская программа принципиально не должна содержать эксепшены. Но я человек, который использует Си, как более удобный ассемблер (порок воспитания). Возможно, реальность - другая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Программирование в ООП обычно требует динамического выделения памяти. ... Я, лично, сишному менеджеру кучи не доверяю и никогда не использую. ... Ембеддерская программа принципиально не должна содержать эксепшены. Во-во. Смешались в кучу кони, люди... То, о чем я говорил. Никакого отношения динамическое выделение памяти к ООП не имеет. Нет такого понятия - "сишный менеджер кучи". Может быть - менеджер кучи в составе библиотек, поставляемых с каким-либо компилятором. Эксепшены - это такая удобная форма goto. Или, даже longjmp, если быть точным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kurtis 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Никакого отношения динамическое выделение памяти к ООП не имеет. Дык если взять STL, то там куда не плюнь, везде динамическое выделение памяти, а без STL, С++ это скорее "Си с классами". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Дык если взять STL STL - это всего лишь удобный способ представления стандартных структур данных, повсеместно применяемых в программировании. Реализованный средствами ООП. Причем, как по мне, реализация оставляет желать лучшего - простейшие манипуляции с объектами STL вызывают дикую фрагментацию кучи со всеми вытекающими... Хотя, болтают всякое про то, что STL - составная часть C++... Но то дураки болтают :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба С++ это скорее "Си с классами". А ,пардон, этого мало для эмбеда? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
researcher 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба Об ООП хорошо думаю :), но в AVR ООП тесно. Какая необходимость использовать ООП в AVR, когда есть С? Что вы думаете по поводу ООП для микроконтроллеров AVR на языке C++? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 10 мая, 2009 Опубликовано 10 мая, 2009 · Жалоба ОП имеет смысл когда есть что наследовать и есть кому. Внутри одной законченной программы, которая никогда не будет иметь связей с другими программами эти все ситуации заранее определены. А следовательно, физического смысла не имеют. А городить ООП только из-за перегрузки функций, имхо - лишнее. Писанины все-таки больше. ООП имеет сермяжный смысл для большой группы программ, которые как-то взаимодействуют. И ООП не столько способ исполнения программы, сколько способ ея написания. Т.е. фича для программиста. Некая парадигма существования. А так, конечно, очень удобно, что в структуру можно нормальным и явным образом добавлять функции. Безусловно. Иногда очень удобно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 11 мая, 2009 Опубликовано 11 мая, 2009 · Жалоба ОП имеет смысл когда есть что наследовать и есть кому. К счастью, такие ситуации возникаю довольно часто. К счастью, потому что это не даст погубить ООП. Внутри одной законченной программы, которая никогда не будет иметь связей с другими программами эти все ситуации заранее определены. А следовательно, физического смысла не имеют. Видимо многие несколько другого мнения, раз используют ООП, не имеющий физического смысла. А городить ООП только из-за перегрузки функций, имхо - лишнее. Писанины все-таки больше. Наверно писанины будет меньше, если городить нечто подобное на Plain C. ООП имеет сермяжный смысл для большой группы программ, которые как-то взаимодействуют. И ООП не столько способ исполнения программы, сколько способ ея написания. Т.е. фича для программиста. Некая парадигма существования. Без комментариев. А так, конечно, очень удобно, что в структуру можно нормальным и явным образом добавлять функции. Безусловно. Иногда очень удобно. Это тоже без комментариев. Но я человек, который использует Си, как более удобный ассемблер (порок воспитания). Возможно, реальность - другая. Вообще, как Вы можете говорить после этого о достатках и недостатках ООП? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 11 мая, 2009 Опубликовано 11 мая, 2009 · Жалоба Вообще, как Вы можете говорить после этого о достатках и недостатках ООП? Ну я тоже обычно не пользую плюсы. Мне можно говорить о достоинствах и недостатках? Видимо можно, потому что я не стал отговаривать от их применения? ;) Каждый должен выбрать себе собственный способ полоскания мозгов, и не стоит в этом людям мешать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться