Как же тогда использовать ООП в WinAvr? Возможно кто-нибудь может дать пример того как создать объект (экземпляр) класса. Буду благодарен!
Как использовать ООП в WinAvr
- Сообщения: 12
- Зарегистрирован: Пт май 20, 2016 02:44:46
Класс я создал. А вот объект класса создать не получается! Полазив по интернету выяснил что оператор 'new' не поддерживается компилятором!
Как же тогда использовать ООП в WinAvr? Возможно кто-нибудь может дать пример того как создать объект (экземпляр) класса. Буду благодарен!
Как же тогда использовать ООП в WinAvr? Возможно кто-нибудь может дать пример того как создать объект (экземпляр) класса. Буду благодарен!
- Реклама
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Никак. Вы не поверите, но существуют системы, на которых парадигма ООП не дает выигрыша, но, более того, дает существенный проигрыш в параметрах эффективности кода (размер, скорость выполнения). Небольшие контроллеры вроде AVR (а также STM8, MSP430, не слишком монструозные STM32) относятся именно к таким системам. Так что, если вы пишете под AVR, ваш выбор - процедурное/структурное программирование.Как же тогда использовать ООП в WinAvr?
Если вам очень хочется странного, можете посмотреть, как ООП реализуется на платформе Arduino. Правда, я думаю, после того, как вы увидите, насколько нещадно такой подход выжирает память контроллера (если мне не изменяет память, мигание светодиодом занимает там что-то около полутора килобайт), вам расхочется действовать таким образом.
Что касается оператора new, то, чтобы он работал, необходим механизм динамического выделения памяти, который вам придется реализовывать самостоятельно. Кроме того, качественный менеджер памяти легко может сам занять всю память какого-нибудь младшего чипа из семейства AVR.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
экземпляры должны создаваться статически - вот и вся проблема. для динамического, как было сказано, памяти не хватит.marengo писал(а):Возможно кто-нибудь может дать пример того как создать объект (экземпляр) класса. Буду благодарен!
при статическом создании экземпляров классов (если они грамотно разработаны, конечно) должен получаться достаточно компактный код, соизмеримый с аналогом на Си без плюсов.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Как правило тот, кто может грамотно использовать C++, на чистом C пишет не хуже.если они грамотно разработаны, конечно
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Я и не говорю, что может быть хуже. Просто в некоторых случаях код С++ легче поддается модификации, а для кого-то может быть и проще написать в парадигме ООП.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама

