相关疑难解决方法(0)

来自两个派生类的多重继承

我有一个抽象的基类作为接口.

我有两个派生类的"集合",它们实现了抽象类的一半.(一个"set"定义与初始化相关的抽象虚拟方法,另一个"set"定义与实际"工作"相关的那些.)

然后,我得到了使用多继承来构造完全定义的类的派生类(并且本身不添加任何东西).

所以:(坏伪代码)

class AbsBase {
  virtual void init() = 0;
  virtual void work() = 0;
}

class AbsInit : public AbsBase {
  void init() { do_this(); }
  // work() still abs
}

class AbsWork : public AbsBase {
  void work() { do_this(); }
  // init() still abs
}

class NotAbsTotal : public AbsInit, public AbsWork {
  // Nothing, both should be defined
}
Run Code Online (Sandbox Code Playgroud)

首先,我可以这样做吗?我可以继承两个派生自同一Base的类吗?(希望如此).

虽然这是"真正的问题"(我在上面撒谎以简化示例).

我真正做的是将非抽象访问器方法添加到基类:

class AbsBase {
public:
  void init() { init_impl(); }
  void work() { …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance multiple-inheritance

26
推荐指数
1
解决办法
6万
查看次数

标签 统计

c++ ×1

inheritance ×1

multiple-inheritance ×1