我想写一个线性程序解决库。因此使用了几种求解器,如cplex或gurobi。我已经有了每个接口(都包含相同的函数来包装它们来解决特定的代码)。正确的继承/类结构
现在我想要一个可以实例化的类'LinearProgram',例如通过LinearProgram(“cplex”),然后调用cplex求解器。
我的第一个想法是使用超类“求解器”,它是所有求解器接口的基类,其中包含作为虚拟声明的相应函数。但后来我得到了一个无法实例化的抽象类。 所以在LinearProgram中,我想要一个变量Solver,它根据构造函数中给出的字符串进行实例化。
我确定一个合适的解决方案是非常明显的,但我现在所能想到的一切都不令人满意。
感谢您的帮助。
使用你的求解器超类的想法,仅实例化子类,并且不要使用超类的值(仅使用指针和引用)。 – Wug