小编cpp*_*elp的帖子

从基类调用派生类函数

class base
{
  public:
  virtual void start();
  virtual void stop();

  void doSomething() { start(); .... stop(); }
}

class derived : public base
{
  public:
   void start();
   void stop();
}
Run Code Online (Sandbox Code Playgroud)

但是当我调用doSomething()派生类时,它使用它自己的定义Start()Stop()不是派生类.

我不想doSomething()在派生类中重写,因为它与基类相同.我究竟做错了什么?

对不起,如果不清楚.
派生类中Start()和Stop()的行为是不同的(它是一个不同的机器) - 但我想使用原始基类doSomething(),因为它没有改变.它只需要使用新的派生类代码start()和stop().

c++ virtual inheritance

15
推荐指数
2
解决办法
4万
查看次数

标签 统计

c++ ×1

inheritance ×1

virtual ×1