我必须@staticmethod在类内部创建一个。我想知道是否有任何方法可以“保存”在两个顺序调用之间的静态方法内部定义的变量。
我的意思是一个行为类似于 C++ 中的静态变量的变量
我正在从用于解决 ODE 的类层次结构转移到用于解决 ODE 系统的类。
在我使用单个函数的实现中,我使用以下内容来存储我的函数:
std::function<const Type(const Type, const Type)> numericalFunction
Run Code Online (Sandbox Code Playgroud)
我有一个包装器来评估数值函数:
Type f (Type t, Type u) const noexcept { return numericalFunction(t,u); }
Run Code Online (Sandbox Code Playgroud)
现在我要解决方程组,所以我需要存储多个函数。我尝试使用 a 存储函数集,std::vector如下所示:
std::vector<std::function<const Type(const Type,const Type)>> numericalFunction;
Run Code Online (Sandbox Code Playgroud)
我希望能够使用与上述问题相同的语法。那是,
f[0](12,32); 应该执行 numericalFunction.at(0)(12,32);
dfdt[0](t, u); 应该执行 (numericalFunction.at(0)(t, u+eps) - numericalFunction.at(0)(t, u))/eps;
我如何编写代码以允许这样的语法?
编辑我有一个问题..现在我需要更改功能
std::vector<std::function<const Type(const Type,const Type)>> numericalFunction;
Run Code Online (Sandbox Code Playgroud)
变成:
std::vector<std::function<const Type(const Type,const std::vector<Type>)>> numericalFunction;
Run Code Online (Sandbox Code Playgroud)
并且派生类不起作用