我知道应该避免从构造函数中调用虚方法。但是下面的例子仍然是这种情况吗?即是否可以通过限定名称选择精确覆盖调用虚拟功能来调用?
struct base {
virtual void foo( ) = 0;
};
struct derived : base {
derived( ) {
// IMHO derived's override gets called no matter what, right?
this->derived::foo( );
}
void foo( ) override {
// derived does something
}
};
struct eventual_more_derived : derived {
void foo( ) override {
// eventual_more_derived may do something different
}
};