🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #7916

glib -- N-ary tree -- function pointer

#7916
From: David Jacobs
Date: Sat, 20 Jul 2002 19:47
57 lines
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-mail

Show 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/)