M>>Или лучше сделать через if else заместо v-table ? В этом случаи есть шанс что gcc проинлайнит все вызовы и будет быстрее работать.
M>Ну, вообще-то нормальный компилятор может понять, когда можно напрямую вызвать. Если напрямую вызвать нельзя, то не пойму, как тебе if else поможет
Т.е. он может вызов виртуальной функции ClientCommon::OnRecv, превратить в что-то типа:
if (v-table==Client1) call Client1::OnRecv
else
if (v-table==Client2) call Client2::OnRecv
else
call ClientCommon::OnRecv
У него же нет гарантий, что у меня не появиться Client3 ?