我有一个父类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");
}
}