Поместите реализацию конструктора в заголовочный файл. Шаблон, в данном случае, ведет себя как макрос. Для того, чтобы его использовать (инстанцировать), необходимо иметь под рукой его определение (а Вы его спрятали в cpp файл). Вот прямая аналогия — Вам же не приходит в голову отделять объявление макроса от его определения? Думаю, что нет. Вот так же и здесь.