Problem z pojemnikami !!
Ostatnio zmodyfikowano 2013-04-06 17:12
fers334 Temat założony przez niniejszego użytkownika |
Problem z pojemnikami !! » 2013-04-06 17:06:07 Siemka mam problem mianowicie mam klase szablonowa wektor chce jej cialo umiescic w pliku naglownkowym , natomiast funkcje skladowe w pliku cpp jest jednak problem ze przy tym zabiegu wyskakuje blad linkera. Wystepuje on tylko przy uzyciu szablonow oraz gdy rozdzielam plik na 2 czesci gdy jest wszystko razem dziala . Prosze o pomoc jak to rozwiazac by umiescic to w 2 plikach cpp,h. Oto kod : Plik wektor.h #ifndef wektor_H #define wektor_H
template < class typ > class pojemnik { private: typ * wsk_obiekt; int rozmiar_tabl; int aktualny_obiekt; public: pojemnik(); bool ustaw_rozmiar( int rozmiar ); typ & operator []( int nr ); typ & operator ++(); typ & operator ++( int ); typ & operator --(); typ & operator --( int ); }; #endif
plik wektoc.cpp #include "wektor.h"
template < class typ > pojemnik < typ >::pojemnik() { wsk_obiekt = NULL; rozmiar_tabl = 0; aktualny_obiekt = 0; }
template < class typ > bool pojemnik < typ >::ustaw_rozmiar( int rozmiar ) { if( rozmiar_tabl == 0 ) { wsk_obiekt = new typ[ rozmiar ]; return true; } else return false; }
template < class typ > typ & pojemnik < typ >::operator []( int nr ) { if( nr > rozmiar_tabl ) { return NULL; } else { return wsk_obiekt[ nr ]; } } template < class typ > typ & pojemnik < typ >::operator ++() { aktualny_obiekt++; return wsk_obiekt[ aktualny_obiekt ]; } template < class typ > typ & pojemnik < typ >::operator ++( int ) { int stary_obiekt = aktualny_obiekt; ++* this; return wsk_obiekt[ stary_obiekt ]; } template < class typ > typ & pojemnik < typ >::operator --() { aktualny_obiekt--; return wsk_obiekt[ aktualny_obiekt ]; } template < class typ > typ & pojemnik < typ >::operator --( int ) { int stary_obiekt = aktualny_obiekt; --* this; return wsk_obiekt[ stary_obiekt ]; }
Oto komunikat o bledzie : main.obj : error LNK2019: unresolved external symbol "public: __thiscall pojemnik<int>::pojemnik<int>(void)" (??0?$pojemnik@H@@QAE@XZ) referenced in function _SDL_main
Prosze o pomoc z gory dzieki :) |
|
pekfos |
» 2013-04-06 17:12:29 Implementacja szablonu musi być w pliku nagłówkowym. |
|
« 1 » |