通过限定名称从构造函数调用虚方法

时间:2015-11-08 17:11:30

标签: c++ inheritance constructor virtual-method

我知道应该避免从构造函数中调用虚方法。但是下面的例子仍然是这种情况吗?即是否可以通过限定名称选择精确覆盖调用虚拟功能来调用?

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
    }

};

0 个答案:

没有答案