У меня есть следующий класс.C++ Class Templates Inheritance Call Constructor/Destructor
template <class T>
class DivideConquerTask {
public:
DivideConquerTask() = delete;
DivideConquerTask(int problemSize, int branchingSize);
virtual ~DivideConquerTask();
DivideConquerTask(const DivideConquerTask& other) = delete;
DivideConquerTask& operator=(const DivideConquerTask& rhs) = delete;
DivideConquerTask(DivideConquerTask&& other) = delete;
DivideConquerTask& operator=(DivideConquerTask&& rhs) = delete;
...
и в CPP файле
template <class T>
DivideConquerTask<T>::DivideConquerTask(int problemSize, int branchingSize) :
_problemSize { problemSize }, _branchingSize { branchingSize } {
}
template <class T>
DivideConquerTask<T>::~DivideConquerTask() {
/* Currently no resources managed. */
}
Я тогда класс:
class MergeSortTask final : public DivideConquerTask<int> {
public:
virtual ~MergeSortTask();
MergeSortTask(int data[], int problemSize, int branchingSize);
...
с CPP файл
MergeSortTask::~MergeSortTask() {
}
MergeSortTask::MergeSortTask(int* data, int problemSize, int branchingSize) :
DivideConquerTask(problemSize, branchingSize), _data { data } {
}
и от этого я получаю сообщение об ошибке:
неопределенная ссылка на Actors::DivideConquerTask<int>::~DivideConquerTask() undefined reference to
Актеры :: DivideConquerTask :: DivideConquerTask (интермедиат, целый)
где Актёры этого пространства имен все объявляется/определен в.
Что здесь проблема? Почему он не может найти мой базовый конструктор/деструктор?
Примечание: Я опустил некоторые тривиальные функции, которые работают нормально.
Извините. Не нашел дубликат. Спасибо, что направил меня! – UmaN
Я не понимаю, почему люди сбиты без объяснений. Как я могу, возможно, улучшить будущие вопросы? – UmaN