Hallo!
Ich möchte ein dynamisches Array von Funktionszeigern
generieren. Mein Versuch ist folgender:
…
Leider schlägt er fehl. Was muss ich ändern, damit es
funktioniert?
Was möchtest Du genau damit machen?
Sowas hier (Glaskugel)?
#include
#include
// ein paar Funktionen, die float zurueckliefern
float a\_func(void) { return (float) 'a'; }
float b\_func(void) { return (float) 'b'; }
float c\_func(void) { return (float) 'c'; }
float d\_func(void) { return (float) 'd'; }
// eine Typdefinition, die diesen Funktionen entspricht
typedef float (\*FFPTR)();
class Klasse2 {
FFPTR \* array;
public:
Klasse2 (int size);
float Dispatch(int index) {
return array[index]();
}
};
Klasse2::Klasse2(int size)
{
array = new FFPTR[size];
assert(array != 0);
array[0] = a\_func;
array[1] = b\_func;
array[2] = c\_func;
array[3] = d\_func;
}
int main()
{
Klasse2 k2( 4 );
float r = k2.Dispatch(2);
printf("Klasse returned %f (%c)\n", r, (int)r);
return 0;
}
Grüße
CMБ