webForumDet fria alternativet

templates

1 svar · 195 visningar · startad av turbofreddan

turbofreddanMedlem sedan apr. 2003115 inlägg
#1

jag tar inte med all kod, men är det någon som ser varför jag får fel: error C2955: 'Node' : use of class template requires template argument list. see declaration of 'Node'

-----------------
lista.h

template <typename MyData>
struct Node{
MyData data;
Node* prev;
Node* next;
};

template <typename MyData>
class DeQue
{
Node* first;
Node* last;
public:
DeQue();
virtual ~DeQue();
void PushFirst(MyData data);
....

};

lista.cpp

...
.
.
.
.

template <typename MyData> void DeQue<MyData>::PushFirst(MyData data)
{
......
}

och när jag vill använda listan skapar jag en ny DeQue

DeQue <minpekare*> que

du är ju MyData = minpekare*

detta borde räcka att skriva för tror problemet ligger i denna koden någonstans

PeWMedlem sedan juni 200010 432 inlägg
#2

Du bör inte dela upp deklaration och definition i separata filer när det gäller templates. Se exempelvis den här diskussionen som du lätt fått fram om du sökt lite ;) -> http://www.webforum.nu/showthread.php?postid=623194#post623194
Iofs går det även att lägga en include på cpp-filen inuti h-filen men det är inte lika strukturerat som att ha hela template-prylen i en headerfil.

Btw... -> http://www.webforum.nu/misc.php?s=&action=bbcode

134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)