Каждый класс, содержащий одну или несколько виртуальных функций, имеет связанную с ним Vtable. Указатель void, называемый vptr, указывает на vtable. Каждый объект этого класса содержит тот vptr, который указывает на тот же Vtable. Тогда почему нет vptr static? Вместо того, чтобы связывать vptr с объектом, почему бы не связать его с классом?