У меня есть две ветви в моей реализации LinkedList. Мастер - это простой, который обслуживает только целые типы данных. В то время как шаблоны _templates разработаны с шаблонами для предоставления услуг любому типу данных.Компиляция шаблона
Мой хозяин филиал компилирует прекрасно с этим:
g++ -0 t1 main.cpp LinkedList.cpp Node.cpp
С другой стороны, когда я пытаюсь скомпилировать свою _templates ветвь с тем же (я реализация изменилось в этой отрасли с шаблонами):
g++ -0 t1 main.cpp LinkedList.cpp Node.cpp
Я получаю ошибку Linking:
undefined reference to `LinkedList<int>::LinkedList()'
undefined reference to `LinkedList<int>::~LinkedList()'
и просто совершенно ясно, мой конструктор в _templates ветви
template <class T>
LinkedList<T>::LinkedList() {
head = 0;
tail = 0;
}
Я не думаю, что это не имеет ничего общего с git, если честно. Если вы успешно сменили филиал, все работает должным образом. Вам нужно проверить, почему ваш компилятор не находит LinkedList – bitoiu
Ваш шаблон конструктора находится в заголовке, правильно? – Mat
См. [Этот вопрос] (http://stackoverflow.com/q/495021/1782465). – Angew