Цитата(ukpyr @ Feb 18 2009, 00:08)

если не секрет, какие такие задачи для AVR требуют использование классов, перегрузки, множества объектов
Да таже scmRTOS имеет иерархическую структуру классов. И задачи создаются, как объекты классов. Вы ведь не хотите для каждой задачи все писать индивидуально?
Ну ладно, более простой пример. Есть у меня два последовательных порта. Хочется FIFO буфер. Я создаю класс буфера
Код
class TFIFOBuff
{
private:
volatile uint16_t BuffHead, BuffTail, BuffSize;
volatile uint8_t *pBuff;
uint8_t saved_state;
uint16_t IncP(uint16_t p);
public:
TFIFOBuff(uint8_t *buffer, uint16_t size);
bool IsFull();
bool IsEmpty();
uint8_t Pop();
void Push(uint8_t byte);
};
из секции public видно, что он предоставляет мне как программисту. Теперь я могу завести для каждого порта по объекту и использовать их на здоровье. Чем плохо?)
На счет монстроидальности плюсов - это от неосведомленности. Есть конечно какой-то оверхед, так он и в си по отношению к асму есть (но это обычно уже не есть правда, учитывая оптимизирующие способности компилятора). Но мы же смотрим не на оверхед, а на время разработки программы в основном. Обычно большая часть программы не требует жесткого реалтайма и вылизывать код на асме вручную - потеря времени. Там где нужно, можно сбалансированно вставлять фрагменты асма, никто не спорит. Но основной код - Си++.