C ++如何从超类中的方法调用子类方法?

时间:2017-03-22 22:31:28

标签: c++ class oop polymorphism

我试图通过调用超类中的方法来调用子类中的方法。

以下是一个例子:

#include <iostream>

using namespace std;

class Robot {
  public:
    Robot() {
      printf("Robot init\n");
      update();
    }
    virtual void update() {
      printf("Robot update\n");
    }
};

class Terminator: public Robot {
  public: 
    Terminator(): Robot() {
      printf("Terminator init\n");
    }
    virtual void update() {
      printf("Terminator update\n");
    }
};

int main() {

  Terminator terminator;
  Robot* robot = &terminator;
}

此代码返回(带注释)

Robot init
Robot update       <--- not what I want
Terminator init

如何让它返回

Robot init
Terminator update  <--- what I want
Terminator init

在机器人中使用update机器人构造函数?

0 个答案:

没有答案