Witam!
Mam problem z szablonami klas.
Do testów stworzyłem trywialną klasę 'klasa'.
pliki:
main.cpp
#include <iostream>
#include "klasa.h"
int main()
{
klasa<int> k1;
return 0;
}
klasa.h
template <class T> class klasa {
public:
T x;
T fun(T y);
klasa();
};
klasa.cpp
#include "klasa.h"
template <class T> T klasa<T> :: fun(T y) {
return x*y;
}
template <class T> klasa<T> :: klasa() {
x = 3;
}
Gdy mam całość w jednym pliku main.cpp, to wszystko działa, kompilator nie wypluwa żadnych błędów, lecz gdy wygląda to tak jak powyżej:
(kompilując w ten sposób) :
g++ klasa.cpp main.cpp -o main
dostaję :
/tmp/ccAA9eO4.o: In function `main':
main.cpp:(.text+0x10): undefined reference to `klasa<int>::klasa()'
collect2: ld returned 1 exit status
wie ktoś może dlaczego?