[ nnn @ 03.06.2009. 18:07 ] @
Ok resio sam da napravim biblioteku struktura za svoje potrebe a i potrebe projekata koji dolaze na faksu sad, na samom pocetku nailazim na jedan banalan problem:


Code:

template <class Data>
class Bintree :public Tree<Data>
{
public:
    Bintree()
    {
        root=NULL;
        tree=NULL;
    }
    Bintree (Data d,int k)
    {
        root=<Data>new  Node(d,k);
        tree=root;
    };
    void insert(Data d,int k)
    {
        while(tree!=NULL)
            if(tree->key>k)
                tree=tree->right;
            else
            tree=treee->left;
        tree=<Data>new Node(d,k);

    }
};

int main()
{
    Bintree <int>nnn();
    nnn.insert(4,3);
return 0;
}



Sad problem je ovde

nnn.insert(4,3);

poruka je sledeca
left of '.insert' must have class/struct/union
Sad googlao sam i gledao u knjigama..

Tree je abstraktna klasa, Node je jednostavna klasa koja cak ni ne mora da bude klasa, moze i strktura ali ovako mi je lakse posto mogu posle da je prosirim za B stabla :P



[Ovu poruku je menjao nnn dana 03.06.2009. u 19:32 GMT+1]
[ nnn @ 03.06.2009. 18:29 ] @
hahaha koja glupost setio sam se


u pitanju je

Bintree <int> nnn();

Iz nekog razloga visual studio to ne tretira kao objekat nego kao funkciju.
[ nnn @ 03.06.2009. 18:34 ] @
Mada sada imam gresku

tree=<Data>new Node(d,k);

Citat:
error C2059: syntax error : '<'


a bez <Data> dobijem
dve greske

error C2955: 'Node' : use of class template requires template argument list

'Node' : class has no constructors

Ali Node ima konstruktor


Code:

template <class Data>
class Node{
    public:
        int key;
        Data data;
        Node *left,*right;
        
Node(Data d, int k)
        {
            key=k;
            data=d;
            left=NULL;
            right=NULL;
        }
        
        
    };




[ Mihajlo Cvetanović @ 03.06.2009. 21:48 ] @
Pričam napamet, ali zar ne treba ovako:

tree = new Node<Data>(d,k);
[ nnn @ 04.06.2009. 01:30 ] @
Jeste provalio sam i sam posle nekog vremena.. Hvala u svakom slucaju..