I want to have a class which has as a member a pointer to a function
here is the function pointer:
typedef double (*Function)(double);
here is a function that fits the function pointer definition:
double f1(double x)
{
return 0;
}
here is the class definion:
class IntegrFunction
{
public:
Function* function;
};
and somewhere in the main function i want to do something like this:
IntegrFunction func1;
func1.function = f1;
But, this code does not work.
Is it possible to assign to a class member a function pointer to a global function, declared as above? Or do I have to change something in the function pointer definition?
Thanks,
Replace this:
class IntegrFunction
{
public:
Function* function;
};
with this:
class IntegrFunction
{
public:
Function function;
};
Your typedef already creates a pointer-to-function. Declaring Function* function
creates a pointer-to-pointer-to-function.
Just replace
Function* function;
to
Function function;
You declare the variable as Function* function
, but the Function
typedef is already a typedef for a pointer. So the type of the function pointer is just Function
(without the *).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With