Pode postar exatamente a mensagem de erro que você está recebendo?
DavidUser
ViniGodoy
O que acontece é seguinte.
Como Item é um parâmetro da template, o compilador não tem como saber o que é ::iterator (poderia ser um variável estática de item).
Então, basta usar a palavra chave “typename” antes da declaração para informar ao compilador que isso se trata de um nome de tipo:
O erro até é simpático, ele no fundo está falando para você o que você deveria fazer… heheheh
DavidUser
Poxa! Muito Obrigado, nunca tinha tido um erro como este então fiquei confuso.
ViniGodoy
Bem-vindo aos templates. :lol:
E olha que esses erro nem tem mais de 40 linhas de comprimento (como acontece muito com templates).
E
entanglement
Algumas dicas:
a) Cuidado com as passagens de parâmetros - aqui no seu construtor, por exemplo, você passou um list<ChartNode *> por valor, o que nesse caso parece ser legítimo. Mas tente sempre usar a versão “const” das coisas, caso possível (é o que aparentemente você tentou fazer).
Neste caso em particular, você poderia até ter usado:
b) Os nomes habituais em inglês não são “father” , “brother” e “son” mas “parent”, “sibling” e “child” (plural “children”). (OK, existe a “motherboard” mas ela não faz parte de uma árvore )