我遇到了继承问题,我不知道我的解决方案是否优雅。我有这样的课
class Var
{
public:
virtual void doSomething();
}
class DerivedVar : public Var
{
public:
virtual void doSomething();
void doSomethingElse();
}
我也有继承自 MyBase 的 MyDerived。MyBase 有一个 Var 类型的成员,而 MyDerived 需要有一个 DerivedVar 的成员,以便它可以调用 doSomething()。目前,我正在使用模板来解决这个问题
template<typename VarType>
class MyBase
{
protected:
VarType var;
public:
MyBase() { var.doSomething(); }
}
class MyDerived : public MyBase<DerivedVar>
{
public:
MyDerived() : MyBase() { var.doSomethingElse(); }
}
我想知道是否有更好的方法来做到这一点(例如,不需要使用模板)