Mój problem polega na tym, że wprowadziłem (typedef Node Node;) i zamieniłem wszędzie w kodzie Node na Node tylko, że pojawił się błąd gdy jakaś metoda zwraca Node** wcześniej cały kod się kompilował i działał poprawnie, a typedef będzie mi potrzebny przy rozwijaniu projektu i zastanawiam się dlaczego kompilator krzyczy mi przy implementacji metody Node** BSTreeAVL::FindNode(const K& key)
takie coś:
expected constructor, destructor, or type conversion before '*' token
taki sam rezultat jest przy metodzie Node** BSTreeAVL::MinMaxNode(Node** n, bool m) ( przy tej lini) mam taki kod:
template
class BSTreeAVL
{
typedef Node Node; // to dodałem
// cos ...
public:
BSTreeAVL();
~BSTreeAVL();
// cos ...
private:
int count;
Node* main_node;
Node** FindNode(const K& key);
Node**MinMaxNode(Node** n, bool m);
void DeleteNode(Node** n);
};
i mam jeszcze taki kod:
template
Node** BSTreeAVL::FindNode(const K& key) // tutaj krzyczy
{
Node** nd = &main_node;
while(*nd != 0 && (*nd)->getKey() != key)
nd = key < (*nd)->getKey() ? (*nd)->getLeft() : (*nd)->getRight();
if (*nd == 0) throw NotFoundKeyException("Klucz nie istnieje");
return nd;
}
template
Node**BSTreeAVL::MinMaxNode(Node** n, bool m) // tutaj też
{
Node** nd = n;
if (m)
while(*(*nd)->getLeft() != 0)
nd = (*nd)->getLeft();
else
while(*(*nd)->getRight() != 0)
nd = (*nd)->getRight();
return nd;
}
proszę o pomoc w rozwiązaniu problemu