C++类中使用函数指针有关问题

C++类中使用函数指针问题
#ifndef _CFUNC_H_
#define _CFUNC_H_
#pragma once
#include <iostream>
using namespace std;
class Cfunc
{
public:
inline double func1(double x, double y)
{
return (x+y);
}
inline double func2(double x, double y)
{
return 2.0 * (x+y);
}
inline double func3(double x, double y)
{
return 3.0 * (x+y);
}
inline double func4(double x, double y)
{
return 4.0 * (x+y);
}
public:
inline void calculate(double x, double y)
{
double (Cfunc::*FUN[4])(double, double);
double s;

FUN[0] = &Cfunc::func1;
FUN[1] = &Cfunc::func2;
FUN[2] = &Cfunc::func3;
FUN[3] = &Cfunc::func4;

for(int i = 0; i != 4; i++)
{
s = (*FUN[i])(x,y);

cout<<"Num of Func: "<<i<<" result: "<<s<<endl;
}
}
};
#include "Cfunc.h"
#include <iostream>
using namespace std;

int main()
{
Cfunc test;

test.calculate(1.5,2.0);

return 0;
}
请问上述代码错在哪里,如何改正?
谢谢!
c++ class

------解决方案--------------------
头文件

//Cfunc.h
#ifndef _CFUNC_H_
#define _CFUNC_H_
#include <iostream>
using namespace std;
class Cfunc
{
typedef double (Cfunc::*FUN)(double, double);  //声明函数指针
public:
    double func1(double x, double y)  //不需要inline,在里面定义函数默认为内联函数
    {
           return (x+y);
    }
    double func2(double x, double y)
    {
           return 2.0 * (x+y);
    }
    double func3(double x, double y)
    {
           return 3.0 * (x+y);
    }
    double func4(double x, double y)
    {
           return 4.0 * (x+y);
    }
public:
FUN f[4];   //定义函数指针数组
    void calculate(double x, double y)
    {
        double s;
        
f[0] = &Cfunc::func1;//指向成员函数
        f[1] = &Cfunc::func2;
        f[2] = &Cfunc::func3;
        f[3] = &Cfunc::func4;
        
        for(int i = 0; i != 4; i++)
        {
            s = (this->*f[i])(x,y);