Спасибо за подсказки, удалось сделать то, что хотелось.
Столкнулся с несколькими проблемными местами в реализации (которых при наличии базовых знаний не было бы
):
1. Нужно переопределять все виртуальные методы, иначе класс считается абстрактным. Сам класс объявил так:
template<class TCHAR>
class csvbook: public libxl::IBookT<char>
{
<...>
}
2. Т.к. используются шаблоны, вся реализация методов должна находиться в том же файле, в котором они объявлены
3. Создание экземляра пришлось вынести в шаблонную функцию
template<class TCHAR>
csvbook<TCHAR>* csvCreateBook()
{
csvbook<TCHAR>* book;
book = new csvbook<TCHAR>;
return book;
}
и создавать сам экземляр таким способом:
book = csvCreateBook<char>();