Давайте рассмотрим сообщение об ошибке:
unresolved external symbol "public: __thiscall ArrayList<int>::ArrayList<int>(void)" (??0?$ArrayList@H@@QAE@XZ) referenced in function _main
unresolved external symbol
=> Существует некоторый символ (здесь функция), объявленный, но не определенный
ArrayList<int>::ArrayList<int>(void)
=> Шаблон класса конструктора или ArrayList, созданный с помощью T = int
referenced in function _main
=> Возможно, в main () есть код, подобный следующему:
ArrayList<int> IntList;
Решение состоит в том, чтобы обеспечить реализацию конструктора, например:
ArrayList() : arr( 0 ), length( 0 ) {}
внутри тела класса.
Кстати, пожалуйста, не стесняйтесь видеть следующее для вашей справки:
std::array
std::vector