Article View: be.comp.programming
Article #7916glib -- N-ary tree -- function pointer
From: David Jacobs
Date: Sat, 20 Jul 2002 19:47
Date: Sat, 20 Jul 2002 19:47
57 lines
3227 bytes
3227 bytes
Beste coders,
Een vraagje ivm met het doorlopen van N-ary Trees, gebruik makend van
<glib.h>. Ik vind enkel info in de reference, ik heb wat gezocht naar
tutorials, maar niets gevonden...
Als je een tree wilt doorlopen, kan de functie g_node_traverse gebruikt
worden. Hoe moet die nu precies gebruikt worden? Ik zit maar te proberen,
maar ik kom er niet uit...
De functie wordt, in de reference, als volgt gedefinieerd:
"
void g_node_traverse (GNode *root,
GTraverseType order,
GTraverseFlags flags,
gint max_depth,
GNodeTraverseFunc func,
gpointer data);
"
Ik zit vooral in de knoop met de 5de parameter (func).
Verder wordt er in de reference hetvolgende beschreven:
"
gboolean (*GNodeTraverseFunc) (GNode *node,
gpointer data);
Specifies the type of function passed to g_node_traverse(). The function is
called with each of the nodes visited, together with the user data passed
to g_node_traverse(). If the function returns TRUE, then the traversal is
stopped.
"
Die 5de parameter is dus, zo begrijp ik het toch, een Functie Pointer.
Ik heb nu hetvolgende:
gboolean MainWindow::RebuildFunc(GNode *node, gpointer data);
Deze wordt als 5de parameter meegegeven:
g_node_traverse(TreeManager.ToDoTree, G_IN_ORDER, G_TRAVERSE_ALL, -1,
&MainWindow::RebuildFunc, NewToDoItem);
"
cannot convert `gboolean (MainWindow::*)(GNode *, void*)' to
`gboolean(*)(GNode *, void *)' for argument `5' to `g_node_traverse (GNode
*, GTraverseType, GTraverseFlags, int, gboolean (*)(GNode *, void *), void
*)'
"
Het zit'm in die (*) voor de parameterlijkst. Ik moet mijn functie anders
defini�ren of anders meegeven als parameter, vermoed ik. Maar hoe? Ik heb
vanalles al zitten uitproberen zonder al te veel resultaat.
Ik hoop dat ik duidelijk ben geweest en dat er iemand mij kan helpen!
Groeten,
David
Technical Details
Message-ID:
<Xns9251DD7AC3774davidjacobsstudentku@134.58.127.12>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!snoopy.risq.qc.ca!aotearoa.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,c7cb43c6ff7d04ac,start X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-07-20 12:53:40 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!snoopy.risq.qc.ca!aotearoa.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail From: David Jacobs <david.jacobs@student.kuleuven.ac.be> Newsgroups: be.comp.programming Subject: glib -- N-ary tree -- function pointer Date: Sat, 20 Jul 2002 19:47:01 +0000 (UTC) Organization: KULeuvenNet Lines: 57 Message-ID: <Xns9251DD7AC3774davidjacobsstudentku@134.58.127.12> NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be X-Trace: naxos.belnet.be 1027194421 22961 134.58.127.12 (20 Jul 2002 19:47:01 GMT) X-Complaints-To: abuse@belnet.be NNTP-Posting-Date: Sat, 20 Jul 2002 19:47:01 +0000 (UTC) User-Agent: Xnews/5.04.25 Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@du02-13.dial.kulnet.kuleuven.ac.be X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)