Een functie als parameter

Status
Niet open voor verdere reacties.

erikiej1

Gebruiker
Lid geworden
29 apr 2008
Berichten
138
Tijdje geleden alweer sinds ik hier wat heb gevraagd. Maar ik stuit nu toch weer op een probleem:

Ik wil in een object een ongedefiniëerde functie hebben, die dan gedefiniëerd kan worden door een andere functie. Ik heb wat gegoogled en kwam uit op het volgende:

Code:
struct Button{
       
    void f(  );
    void SET_FUNC( void (*F) () ) { f = (*F)(); }
       
};

Ik krijg de errors:

Code:
 ...\include.h In member function `void Button::SET_FUNC(void (*)())': 
 ...\include.h invalid use of member (did you forget the `&' ?)

Ik heb al veel gezocht, maar kan de oplossing niet vinden.
(Of is het gewoon niet mogelijk om een functie later te definiëren?)

Bij voorbaat dank,

Erik.
 
Je zou daarvoor iets als het onderstaande kunnen schrijven:

[cpp]
typedef void (*FP)();

struct Button
{
FP func;

void SetFunction(FP fp)
{
func = fp;
}
};

// ...
button.SetFunction(&someFunction);
[/cpp]

(dit zijn de eerste regels code die ik weer geschreven heb sinds ik last heb 'gehad' ('t is bijna over) van een onstoken pees :$)
 
Let er wel op dat als je een member function mee wil geven, deze niet voldoet aan de vorm void (*FP)().

Beterschap CoD_NL!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan