[ jeremy @ 08.05.2002. 10:08 ] @
Imam problem kod smestanja klasa u posebne module, u klasama koristim sablone. Napisacu vam ovde neki prost primer klase za objekat koji ne radi nista narocito ali ne mogu da ga prevedem komandom make, dok kad ukinem sablone i umesto T svuda stavim npr int sve se normalno prevede :( greska je: class.h: In function `void __static_initialization_and_destruction_0(int, int)': class.h:15: no matching function for call to `klasa<long int>::klasa ()' class.h:11: candidates are: klasa<long int>::klasa(long int) class.h:13: klasa<long int>::klasa(const klasa<long int> &) ---[ makefile ] ------ test: main.o class.o g++ -o test main.o class.o main.o: main.cc class.h g++ -c -o main.o main.cc class.o: class.cc class.h g++ -c -o class.o class.cc ---[ class.h ] ------- #ifndef class_h #define class_h extern "C++" { template <class T> class klasa { private: T a; public: klasa( T i ); void write(); }; klasa <long int> t; #endif } ---[ class.cc ]----- #include <iostream> #include "class.h" extern "C++" { template <class T> klasa <T> ::klasa( T i ) { a=i; } template <class T> void klasa <T> ::write() { cout << a << endl; } } ---[ main.cc ]-------- #include <iostream> #include "class.h" main() { klasa <long int> a (15); a.write(); } ------------------------ sto se tice prevoda sve je uredu, problem je sa linkovanjem :( pozdrav, Igor |