类实现中的纯虚函数

时间:2019-12-16 15:35:48

标签: c++ visual-studio function class virtual

根据C ++ Primer 5th Edition,

“值得注意的是,我们可以为纯虚函数提供定义。但是,必须在类外部定义函数体。也就是说,我们不能在类内部为= 0的函数提供函数体。 ”。

但是,下面的代码在VS2015中对我有用。谁能解释为什么?

struct A
{
    virtual void fn1() = 0 { cout << "A::fn1()" << endl; }
};

struct B : public A
{
    virtual void fn1() override { cout << "B::fn1()" << endl; }
};

int main()
{
    B b;
    b.fn1();    // "B::fn1()"
    b.A::fn1(); // "A::fn1()"

    cin.get(); return 0;
}

0 个答案:

没有答案
相关问题