我正在尝试创建一个尽可能高效的速度距离和时间计算器,并希望使用根据输入而变化的指针来引用调用函数,但我不知道该怎么做。我尝试了很多不同的东西:
我最好的尝试:
// Inside class Math
double calcSpeed(double distance, double time); // These functions return a double value of the formula (non static)
double calcDistance(double speed, double time);
double calcTime(double speed, double distance);
// Inside Main
typedef double (Math::*FuncChosen)(double first, double second);
FuncChosen p = &Math::calcSpeed; // This changes according to input to different functions in Math class with same parameter types and return types
p(1, 2); // Not a function, how can I non explicitly call the function?
有没有办法在不使用指针或其他方式显式引用它的情况下调用此函数。就像从根据输入改变的指针调用函数一样?我真的不知道从哪里开始以及使用什么,因为我尝试的一切都是非法的。我基本上想在运行时选择函数而不使用多个 if,从而避免重复。(我找到了有类似问题的人,但还没有找到一种有效的方法来达到我的目的。)
提前致谢,
而且,是的,我是 C++ 新手,对指针/引用和内存没有做太多。
编辑:作为参考,更正后完成的完整代码- 可编译