Я пишу игру на C++, в которой есть около 30 разных ролей, каждая из которых немного отличается. У меня есть пользователь основного класса, который содержит все данные, необходимые для всех ролей. Моя первая реализация включала просто перечисление 30 ролей и соответствующую обработку, но теперь мне интересно, было бы лучше иметь User в качестве базового класса и каждую роль в качестве собственного класса, наследуемого от User.
Меня больше всего беспокоит, насколько эффективны вызовы полиморфных методов, когда имеется более 30 классов, наследуемых от одного базового класса? Я знаю, что полиморфные вызовы включают указатели в виртуальной таблице, но я не уверен, означает ли это линейный поиск по всей таблице для правильного метода или это можно сделать за постоянное время.
Если бы кто-нибудь мог прокомментировать эффективность вызовов полиморфных методов со многими унаследованными классами, я был бы признателен за просветление.
Заранее спасибо!