今天主要学习修改某些bug并增加函数功能表。

typedef double (*PtrFun)(double)

表示PtrFun指向的是一个接受double实参,返回double类型的函数的指针。

typedef double *PtrFun(double)

表示PtrFun为一个接受double类型,返回一个指向double数据指针的函数类型。

利用new创建函数数组时就可以只用p = new PtrFun[],这样的表述。如同int[]一样,表示这样数组里存放的是Ptrfun。

FunctionTable::FunctionTable():size_(sizeof(Entrys)/sizeof(Entrys[0]))
{
    pFuns_ = new PtrFun[size_];
}

利用上面的表示方法,就可以求出函数个数的大小。

struct FunctionEntry
{
    PtrFun pFun;
    char* pFunName;
};

//数学函数入口
FunctionEntry Entrys[] =
{
    log, "log",
    log10, "log10",
    exp, "exp",
    sqrt, "sqrt",
    sin, "sin",
    cos, "cos",
    tan, "tan",
    sinh, "sinh",
    cosh, "cosh",
    tanh, "tanh",
    asin, "asin",
    acos, "acos",
    atan, "atan"
};

利用函数指针可以指引到内置函数。牛逼。

posted @ 2017-03-25 20:58  冥地魔王  阅读(121)  评论(0)    收藏  举报