Witam,
mam problem z użyciem szablonów:
//SortowaniePrzezKopcowanie.h
#ifndef SORTOWANIEPRZEZKOPCOWANIE_H
#define SORTOWANIEPRZEZKOPCOWANIE_H
template <typename Typ>
class SortowaniePrzezKopcowanie
{
public:
SortowaniePrzezKopcowanie();
virtual ~SortowaniePrzezKopcowanie();
void TworzenieKopca(Typ *tab, Typ liczba_elementow, Typ kierunek);
void RozbieranieKopca (Typ *tab, Typ liczba_elementow, Typ kierunek);
void Sortowanie(Typ *tab, Typ liczba_elementow, Typ kierunek);
}
//fragment SortowaniePrzezKopcowanie.cpp
template <typename Typ>
void SortowaniePrzezKopcowanie<Typ>::Sortowanie(Typ *tab, Typ liczba_elementow, Typ kierunek)
{
TworzenieKopca(tab,liczba_elementow, kierunek);
RozbieranieKopca(tab,liczba_elementow, kierunek);
}
void TemporaryFunction ()
{
SortowaniePrzezKopcowanie<int> TempObj;
}
//fragment pliku main.cpp
#include "SortowaniePrzezKopcowanie.h"
SortowaniePrzezKopcowanie<int> Sort1;
Sort1.Sortowanie(tab1,StopienZapelnienia[i]*rozmiar_tab-1,1);
Przy wywołaniu metody Sortowanie w main.cpp kompilator wskazuje błąd:
undefined reference to
SortowaniePrzezKopcowanie<int>::Sortowanie(int*, int, int)'`
Generalnie postępowałem wg wskazówek na tej stronie:
http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-a-h-file-and-imp
wg rozwiązania problemu nr1. Niestety, u mnie występuje powyżej wskazany problem z komplikacją