我有两个要从基类派生的类,因为它们共享极其相似的函数和成员变量,而这两个类之间的唯一主要区别是SomeClassvs SomeOtherClassfor algo。解决此类问题的最佳方法是什么?
class A
{
virtual doSomething(); // is it possible to implement it here instead so I don't repeat code?
int shared_param_1;
int shared_param_2;
}
class SGBM : public A
{
SGBM()
{
algo->SGBMSpecificFunction();
}
std::shared_ptr<SomeClass> algo;
doSomething()
{
algo->compute();
// long code
}
int SGBM_param_1;
int SGBM_param_2;
}
class BM : public A
{
BM()
{
algo->BMSpecificFunction();
}
std::shared_ptr<SomeOtherClass> algo;
doSomething()
{
algo->compute();
// long completely similar code relying on algo
}
int BM_param_1;
int BM_param_2;
}
谢谢!