Szablony w C++ i funkcje składowe. zaplątałem się

0

Napisałem szablon klasy, ale mam problem z definicją funkcji składowych. Chociażby z konstruktorem. Piszę coś takiego:

template <class TYP>
drzewo::drzewo()
{
    setRoot(NULL);
}

ale kompilator wyrzuca błąd:


drzewo.cpp:4: error: 'template<class TYP> class drzewo' used without template parameters
drzewo.cpp:4: error: ISO C++ forbids declaration of 'drzewo' with no type
drzewo.cpp:4: error: declaration of template 'template<class TYP> int drzewo()'

Nie wiem jakie części kodu jeszcze są istotne, ale jak są potrzebne, to dodam.

1

Nie możesz rozdzielać klas szablonowych na plik H i CPP, tak jak to robisz ze zwykłymi klasami. Wszystko powinieneś mieć w jednym pliku nagłówkowym.

1

Inaczej, aktualny standard jest w tym miejscu nieprecyzyjny. Nadchodzący C++0x na coś takiego zezwala słowem extern.

0

Ok, wrzuciłem całą klasę do jednego pliku, ale mam inny problem. Dla uproszczenia usunąłem wszystkie funkcje składowe, ale nadal nie znalazłem błędu. Mam klasę typu:

template <class TYP>
class element
{
 private:
TYP a;
}; 

gdy próbuję utworzyć obiekt w taki sposób:

element<int> B; 

Dostaję błąd:
aggregate 'element<int> B' has incomplete type and cannot be defined|

1

A tam, gdzie definiujesz B, znana jest definicja klasy element?

0

Ehhh... ale lipę odwaliłem. Sam nie wiem jak ja to zrobiłem, że nie zauważyłem, że nie dołączyłem tego pliku

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0