Здравствуйте, B0FEE664, Вы писали:
BFE>Если у вас есть указатель на базовый класс, то вызов виртуального метода оправдан. BFE>Но откуда у вас указатель, если все объекты либо глобальные/статические, либо лежат на стеке? (разумеется рекурсивные вызовы без ограничения глубины на стеке запрещены)
Эммм, про оператор взятия адреса ты не в курсе? )))
И да, в коде на МК у меня виртуальных функций нет. Но это не потому, что мне как-то мешается отсутствие динамического выделения памяти, а исключительно потому, что они просто не были нужны.
Более того, у меня как раз не редко случается использование виртуальных функций без динамического выделения памяти на десктопе (хотя там с этим нет проблем). Как раз в виде передачи указателя на стековую переменную. И нужно это в одном весьма очевидном случае: когда одним из параметров библиотечной (т.е. чужой, которую мы не можем переписать под современный стиль с шаблонным параметром и использовать лямбду) функции является указатель на объект с виртуальным функциями (обычно порождённый от какого-то абстрактного класса из этой же библиотеки).