25/10/07 12:28
JackDaniels
Salve a tutti,
arrivo subito al dunque. questo è il codice:
File classe.h
File classe.cpp
File main.cpp
Compilando vengono restituiti i messaggi:
[Linker error] undefined reference to `Classe<int>::setClasse(int, int)'
[Linker error] undefined reference to `Classe<int>::getClasse()'
So che dipende dal fatto che Classe è template ma a me serve così che faccio? ho tralasciato qualcosa? purtroppo sui manuali che ho e su internet non trovo nulla
help
arrivo subito al dunque. questo è il codice:
File classe.h
//Dichiarazione e prototipi della classe CLASSE #ifndef CLAX #define CLAX template <class generic> class Classe { generic a; generic b; public: void setClasse(generic x, generic y); void getClasse(); }; #endif
File classe.cpp
//Implementazione dei metodi della classe CLASSE #include "classe.h" #include <iostream> using namespace std; template <class generic> void Classe<generic>::setClasse(generic x, generic y){ a=x; b=y; } template <class generic> void Classe<generic>::getClasse(){ cout <<"a= " <<a; cout <<'\n' <<"b= " <<b; cout <<"\n\n"; }
File main.cpp
#include <cstdlib> #include <iostream> #include "classe.h" using namespace std; int main() { Classe<int> oggetto1; oggetto1.setClasse(10,20); oggetto1.getClasse(); system("PAUSE"); return EXIT_SUCCESS; }
Compilando vengono restituiti i messaggi:
[Linker error] undefined reference to `Classe<int>::setClasse(int, int)'
[Linker error] undefined reference to `Classe<int>::getClasse()'
So che dipende dal fatto che Classe è template ma a me serve così che faccio? ho tralasciato qualcosa? purtroppo sui manuali che ho e su internet non trovo nulla
help
Ultima modifica effettuata da JackDaniels 25/10/07 12:32
aaa