реклама на сайте
подробности

 
 
> C++ и ООП для микроконтроллеров AVR
koluna
сообщение May 10 2009, 06:21
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Здравствуйте!

Что вы думаете по поводу ООП для микроконтроллеров AVR на языке C++?

Благодарю заранее!


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение May 19 2014, 01:22
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Во-первых, ООП вы напрасно определяете через термины C++. Классическое определение: ООП - это объекты обменивающиеся сообщениями. Цитата из вики: Object-oriented programming (OOP) is a programming paradigm that represents the concept of "objects" that have data fields (attributes that describe the object) and associated procedures known as methods. Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs.
То, что предлагает C++ изрядно запутывает программистов. Я бы посоветовал сначала хорошо изучить Си, а потом уже потихоньку залезать в С++, если так хочется.

ТС рекомендую не углубляться в архитектуру наследования. Гораздо проще сделать так:
1. Выделить сущности в отдельные модули. Пускай датчик будет в отдельном модуле.
2. Если сущность бывает в единственном экземпляре, то можно оставить как есть - модуль с экспортируемыми функциями. Если вы большой любитель классов, то можно обернуть в синглтон.
3. Если сущность может существовать в нескольких экземплярах, то оборачивайте в класс. Например, датчиков может быть много - делаем класс датчиков.
4. Не заморачивайтесь с наследованием. Сделайте разные датчики копипастой. Когда всё заработает, одинаковый код можно вынести в базовый класс.
5. Чтобы единообразно обрабатывать разные датчики, можно сделать для них общий интерфейс. Когда у вас все датчики будут написаны, общий интерфейс написать будет тривиально.
6. Без динамической памяти писать будет больно. Поля в классах нужно инициализировать руками. Инкапсуляция работает хреново потому как приватные поля светятся в заголовках модулей. Подумайте ещё раз, надо ли вам это, потому что Си гораздо гуманее, чем С++.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- n_bogoyavlensky   C++ и ООП для микроконтроллеров AVR   May 10 2009, 06:21
- - Tcom   Нравиться пишите на С++ для AVR.   May 10 2009, 07:06
- - tAmega   Смотря какой AVR, если 8 битные модели, то ООП это...   May 10 2009, 07:11
- - Rst7   Цитатаи программировать на нем конечно можно, но п...   May 10 2009, 07:44
- - tAmega   Видел код на C++ для AVR, нашел единственное объя...   May 10 2009, 09:01
- - Rst7   Цитатанашел единственное объяснение, для чего там ...   May 10 2009, 09:10
- - DpInRock   Программирование в ООП обычно требует динамическог...   May 10 2009, 10:56
|- - SasaVitebsk   Цитата(DpInRock @ May 10 2009, 13:56) Про...   May 11 2009, 21:38
- - Rst7   ЦитатаПрограммирование в ООП обычно требует динами...   May 10 2009, 11:13
- - kurtis   ЦитатаНикакого отношения динамическое выделение па...   May 10 2009, 11:29
|- - _Pasha   Цитата(kurtis @ May 10 2009, 14:29)  С++ ...   May 10 2009, 12:29
- - Rst7   ЦитатаДык если взять STL STL - это всего лишь удо...   May 10 2009, 11:46
- - researcher   Об ООП хорошо думаю , но в AVR ООП тесно. Какая не...   May 10 2009, 12:45
- - DpInRock   ОП имеет смысл когда есть что наследовать и есть к...   May 10 2009, 13:07
|- - haker_fox   Цитата(DpInRock @ May 10 2009, 22:07) ОП ...   May 11 2009, 00:04
|- - demiurg_spb   Цитата(DpInRock @ May 10 2009, 17:07) А т...   May 11 2009, 11:13
- - Rst7   ЦитатаВообще, как Вы можете говорить после этого о...   May 11 2009, 07:23
- - dxp   Мущщины! Вы бы сначала определились в терминах...   May 11 2009, 09:29
|- - Herz   Цитата(dxp @ May 11 2009, 11:29) Мущщины...   May 11 2009, 10:47
|- - n_bogoyavlensky   Цитата(dxp @ May 11 2009, 13:29) Мущщины...   May 12 2009, 18:24
|- - _Pasha   Цитата(n_bogoyavlensky @ May 12 2009, 21...   May 12 2009, 18:34
|- - 777777   Цитата(_Pasha @ May 12 2009, 22:34) Приех...   May 13 2009, 04:00
- - Rst7   Цитатаклассы С++ как таковые - не ООП; Как это? К...   May 11 2009, 09:35
|- - Непомнящий Евгений   Цитата(Rst7 @ May 11 2009, 13:35) Как это...   May 11 2009, 10:35
|- - dxp   Цитата(Rst7 @ May 11 2009, 16:35) Как это...   May 11 2009, 11:12
|- - megajohn   Цитата(dxp @ May 11 2009, 19:22) ... кото...   May 19 2014, 05:02
|- - msalov   Цитата(megajohn @ May 19 2014, 12:12) и п...   May 19 2014, 05:12
|- - Сергей Борщ   Цитата(megajohn @ May 19 2014, 12:12) и п...   May 19 2014, 05:14
- - Rst7   ЦитатаООП - это программирование, когда программа ...   May 11 2009, 10:57
- - Rst7   ЦитатаКласс - это тип, определяемый пользователем....   May 11 2009, 11:52
|- - dxp   Цитата(Rst7 @ May 11 2009, 18:52) Я утвер...   May 11 2009, 13:58
- - Rst7   ЦитатаОбъектно-ориентированные программы можно пис...   May 11 2009, 14:46
|- - dxp   Цитата(Rst7 @ May 11 2009, 21:46) И вообщ...   May 12 2009, 04:03
|- - VladimirYU   Цитата(dxp @ May 12 2009, 08:03) За ООП, ...   May 12 2009, 06:54
|- - dxp   Цитата(VladimirYU @ May 12 2009, 13:54) А...   May 12 2009, 11:31
|- - VladimirYU   Цитата(dxp @ May 12 2009, 15:31) Возможно...   May 12 2009, 11:45
|- - dxp   Цитата(VladimirYU @ May 12 2009, 18:45) Я...   May 12 2009, 13:40
|- - singlskv   Цитата(dxp @ May 12 2009, 17:40) Хм, инте...   May 12 2009, 18:53
|- - dxp   Цитата(singlskv @ May 13 2009, 01:53) У м...   May 13 2009, 03:24
|- - singlskv   Цитата(dxp @ May 13 2009, 07:24) SendMess...   May 13 2009, 04:32
|- - dxp   Цитата(singlskv @ May 13 2009, 10:32) Опр...   May 13 2009, 05:11
|- - singlskv   Цитата(dxp @ May 13 2009, 09:11) Ну да, в...   May 13 2009, 05:39
|- - dxp   Цитата(singlskv @ May 13 2009, 12:39) А ч...   May 13 2009, 06:26
|- - singlskv   Цитата(dxp @ May 13 2009, 10:26) Еще забы...   May 13 2009, 15:41
- - Rst7   Цитатав условиях корпоративной разработки проектов...   May 12 2009, 07:00
- - yanvasiij   Люди, поднял тему в связи с глубокой заинтересован...   May 19 2014, 00:34
- - yanvasiij   Цитата(andrewlekar @ May 19 2014, 11:32) ...   May 19 2014, 02:23
|- - doom13   Цитата(yanvasiij @ May 19 2014, 09:33) А ...   May 19 2014, 03:12
|- - kolobok0   Цитата(yanvasiij @ May 19 2014, 10:33) Сп...   May 19 2014, 14:23
- - andrewlekar   В scmRTOS посмотрите как обработчики сделаны. У ме...   May 19 2014, 02:50
- - yanvasiij   Цитата(andrewlekar @ May 19 2014, 13:00) ...   May 19 2014, 04:05
|- - doom13   Цитата(yanvasiij @ May 19 2014, 11:15) Не...   May 19 2014, 04:58
|- - Сергей Борщ   Цитата(doom13 @ May 19 2014, 12:08) Ваши ...   May 19 2014, 05:09
|- - doom13   Цитата(Сергей Борщ @ May 19 2014, 12:19) ...   May 19 2014, 06:03
|- - Сергей Борщ   Цитата(doom13 @ May 19 2014, 13:13) В так...   May 19 2014, 07:48
|- - doom13   Цитата(Сергей Борщ @ May 19 2014, 14:58) ...   May 19 2014, 08:36
|- - Сергей Борщ   Цитата(doom13 @ May 19 2014, 15:46) Допус...   May 19 2014, 09:01
|- - doom13   Цитата(Сергей Борщ @ May 19 2014, 16:11) ...   May 19 2014, 09:17
|- - megajohn   Цитата(doom13 @ May 19 2014, 17:27) Все п...   May 19 2014, 09:25
|- - Сергей Борщ   Цитата(doom13 @ May 19 2014, 16:27) Все п...   May 19 2014, 11:08
- - andrewlekar   Цитатаможно ли объявлять объект - не создавать его...   May 19 2014, 04:25
- - A. Fig Lee   На маленьких задачах преимущества C++ не очевидны....   May 19 2014, 17:19
- - yanvasiij   megajohn doom13 andrewlekar Сергей Борщ msalov Спа...   May 20 2014, 00:22
- - yanvasiij   -   May 20 2014, 00:22
- - juvf   смешали всё. Ну во первых в avr-gcc от winavr не...   May 21 2014, 23:22
- - andrewlekar   В C99 тоже можно переменную непосредственно перед ...   May 21 2014, 23:45
- - juvf   ЦитатаСсылки полностью перекрываются указателямине...   May 21 2014, 23:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th August 2025 - 18:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016