今天主要学习修改某些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" };
利用函数指针可以指引到内置函数。牛逼。

浙公网安备 33010602011771号