Классы и объекты в Arduino
- Войдите на сайт для отправки комментариев
Пт, 10/04/2015 - 16:26
Добрый день всем!
Возник такой вопрос.
Правильно ли я понимаю, что при программировании Arduino нельзя создать свои классы и объекты в самой программе? Только с помощью библиотеки?
И Arduino не поддерживает сам в чистом виде ООП?
Создать новый скетч, сохранить его, например с именем Blinker, скопировать скетч ниже, скомпилировать, прошить. Работает?
Blinker:
Громадное спасибо! )
Еще столкнулся с частичным искажением данных, если в классе один из параметров
- массив byte без указания размера.
Может так делать не рекомендуется? А если размер массива указываю сразу, искажений нет.
Или глюк?
Если массив, член класса, без указания размера, то размер его, я даже не знаю, скорей всего пустой, глюки обеспечены. Либо указывать размер при объявлении, либо создавать динамически (не рекомендую). Хотя если динамически и создавать один раз тогда вполне нормально.
Помогите пожалуйста понять, что означает 11 строка скетча?
Почему она начинается с двух точек ":"? Что значит этот символ в данном случае? Даже не знаю, по какому запросу искать?
Я проанализировал и прокомментировал скетч! Кто разбирается, пожалуйста посмотрите, правильно ли я написал?
10
Blinker::Blinker(
int
p_delay
/*=2*/
)
// это наверно конструктор класса Blinker ?
11
: m_delay_ms(p_delay)
// ????? а вот что это такое??? я не понял
12
{
13
}
это инициализатор полей класса. В этом месте можно присвоить начальные значения переменным класса. Можно вызвать конструктор этого же класса с другими параметрами.
Спасибо Вам за подсказку! А не могли бы Вы детельнее описать, что делают эти строчки?
Я так понял, что в 10 строке инициализируется переменная
p_delay типа int и ей присваивается значение 2, указанное в 4 строке?
Верно? А что происходит дальше? Я так и не понял, что происходит в строке 11
Переменная m_delay_ms принимает значение переменной p_delay?
Это эквивалентно записи:
Верно ли я рассуждаю? Может я задаю глупые вопросы, но я ещё никогда не видел строчек на С++, начинающихся с двоеточия! Для чего там оно, так и не понял! Объясните пожалуйста, кому не сложно!
Заранее спасибо!
https://msdn.microsoft.com/ru-ru/library/s16xw1a8.aspx
Иль ты думаешь, тебе тут лекции по С++ чтить будут? Дали пинок в нужную сторону и читай, разбирайса.
Это обычная инициализация полей(свойств класса)
есть несколько вариантов инициализации.
https://ru.stackoverflow.com/questions/475616/%D0%9E%D0%BF%D0%B5%D1%80%D...
ПС: по теме. Это говорит что функция находится в данном классе.
Пух, ты бухой? Ты вопрос читал?
Пух, ты бухой? Ты вопрос читал?
И этот
А это так на закуску.
я дал пинок в нужную сторону и дал ссылку на почитать побольше. Имеющий глаза и моск - разбереца. Там и про const написана.
только при чём здесь область видимости aka :: ?
я дал пинок в нужную сторону и дал ссылку на почитать побольше. Имеющий глаза и моск - разбереца. Там и про const написана.
только при чём здесь область видимости aka :: ?