Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

template problem

[es] :: C/C++ programiranje :: template problem

[ Pregleda: 4161 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Iznogud
Subotica

Član broj: 1721
Poruke: 212
*.161.EUnet.yu



Profil

icon template problem09.03.2002. u 18:20 - pre 238 meseci
U jednom heder-u sam definisao template class-u:

//file: Matrix.h
template<class T>
class Matrix {
public:
Matrix (int m, int n); //matrica m x n
Matrix (const Matrix<T>&);
~Matrix ();
// i tako dalje....(sledi deklaracija f-ja)

Udrugom fajlu je definicija gore deklarisanih f-ja.
U trecem fajlu sam hteo da vidim kako to sve funkcionise i u main() funkciji sam stavio:
#include "Matrix.h"
int main(){
Matrix<int> mat(3,3);
}

Compailer ne prijavljuje gresku ali linker izbacuje sledecu gresku:
d:\dev-c++\sinisa\matrix\matmain.o: In function `_tf8_IO_FILE':
//d/dev-c++/sinisa/matrix/matmain.cpp:6: undefined reference to `Matrix<int>::Matrix(int, int)'
//d/dev-c++/sinisa/matrix/matmain.cpp:6: undefined reference to `Matrix<int>::~Matrix(void)'
//d/dev-c++/sinisa/matrix/matmain.cpp:6: undefined reference to `Matrix<int>::~Matrix(void)'

U cemu je problem??
Pozdrav.
PS: primer je po knjizi D. Milicev

 
Odgovor na temu

pegazus
Beograd

Član broj: 2413
Poruke: 52
*.ptt.yu



Profil

icon Re: template problem09.03.2002. u 19:19 - pre 238 meseci
HA,
Pa problem je u tome sto sablomni imaju unutrasnju linkazu.

Znaci da moraju biti potpuno definisani u jedinici prevodjenja(datoteka).

Dakle i definicije funkcija koje koristis moras ukljuciti (#include) u
datoteku u kojoj ih koristis(#include "Matrix.cpp").
Posto imaju unutrasnju linkazu mozes i u vise datoteka
istog projekta ukljuciti istu .cpp datoteku.

Drugo resenje je da deklarises sablone kao export ali
ja nisam naisao na kompajler koji ovo podrzava, ali
je cak prvo resenje efikasnije.

Upozorenje:
Kod sablona vecina gresaka se ne moze pronaci prilikom kompajliranja.
Tako da je najbolje prvo pisati klasu odredjenog tipa, pa
je posle preraditi u sablon.

Pozdrav.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..g-c5300-1.dialup.nethere.net



+6 Profil

icon Re: template problem09.03.2002. u 21:30 - pre 238 meseci
Već smo pričali o tome. Pogledaj

http://www.elitesecurity.org/tema.php?TopicID=5549
 
Odgovor na temu

[es] :: C/C++ programiranje :: template problem

[ Pregleda: 4161 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.