如何检查子类是否在c ++中覆盖父类的虚方法

时间:2013-10-18 06:16:06

标签: c++

我有一个父类Parent

class Parent
{
public:
  virtual void foo(){ printf("parent foo"); };
  virtual void do_something();
}

两个孩子Child1

class Child1 : public Parent
{
public:
  virtual void foo(){ printf("child foo"); };
}

Child2

class Child2 : public Parent
{
public:
  void bar();
}

如您所见,Child1会覆盖foo()方法,而Child2则不会覆盖它。

所以我想知道是否有某种方法可以在Parent::do_something()中检查它:

Parent::do_something(){
  if (this->do_override_the_foo_method(){ // which is I want to implement
    printf("override foo");
  } else {
    print("not override foo");
  }
}

0 个答案:

没有答案