Я настоятельно рекомендую сначала попробовать простой и понятный подход с использованием наследования. Если это достаточно быстро, это здорово! Вы сделали Если это не так, попробуйте использовать другую схему. Никогда не избегайте полезной языковой функции из-за стоимости, если у вас нет веских веских доказательств того, что цена слишком велика.

предположим, я хочу создать серию классов, каждый из которых имеет функцию-член с одной и той же вещью. Давайте назовем функцию

void doYourJob();

Я хочу со временем поместить все эти классы в один и тот же контейнер, чтобы я мог проходить через них и каждый из них выполнял doYourJob ()

Очевидное решение - создать абстрактный класс с функцией

 virtual void doYourJob();

но я не решаюсь сделать это. Это дорогостоящая программа, и виртуальная функция значительно снизит ее. Кроме того, эта функция - единственное, что классы имеют друг с другом, и doYourJob реализуется совершенно по-разному для каждого класса.

Есть ли способ избежать использования абстрактного класса с виртуальной функцией, или мне придется смириться с этим?

Ответы на вопрос(4)

Ваш ответ на вопрос