Массивы плохо работают с полиморфными типами в качестве содержимого из-за нарезки объектов. Элемент массива имеет фиксированный размер, и если ваши производные объекты имеют больший размер, чем базовый, то массив базовых объектов не может фактически содержать производные объекты.
Даже если параметр функции может переходить в указатель, арифметика указателя, выполненная для этого указателя, будет основываться на размере элемента типа массива.
Чтобы иметь дело с массивами полиморфных типов, вам нужно добавить еще один уровень косвенности и иметь дело с массивами (или другим контейнером) указателей на объекты.
Test2 не компилируется после того, как я превратил Base в чистый абстрактный класс
Вы не можете иметь массивы абстрактных типов, потому что у вас не может быть экземпляров абстрактных типов (только указатели или ссылки на них).