Избегание виртуальных функций

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

void doYourJob();

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

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

 virtual void doYourJob();

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

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

9
задан hedgehogrider 26 January 2011 в 06:14
поделиться