У меня возникают проблемы с программированием с использованием шаблонов на C ++.
Рассмотрим следующие файлы.
C.h
#ifndef _C_H
#define _C_H
template <class T>
class C {
public:
C();
virtual ~C();
}
#endif _C_H
C.cpp
#include "C.h"
template <class T>
C<T>::C() {
}
template <class T>
C<T>::~C() {
}
Я пытаюсь создать экземпляр C в файле с именем main.cpp.
#include "C.h"
int main(int argc, char** argv) {
C<int> c;
}
Я получаю следующую ошибку.
main.cpp undefined reference to `C<int>::C()'
Я тогда бегу
g++ -o C.o C.pp
g++ -o main.o main.cpp
но получите ошибку
main.cpp: undefined reference to `C<int>::C()'
main.cpp: undefined reference to `C<int>::~C()'
Я уверен, что это, вероятно, очевидная ошибка, но я настоящий новичок в этом, поэтому буду благодарен за любую помощь.
Спасибо!