两次声明纯虚函数是完全合法的(在层次结构中的两个类中)

Kir*_*rov 5 c++ inheritance pure-virtual

问题的标题很清楚.这是我的例子:

class A
{
public:
    virtual void f() = 0;
};

class B: public A
{
public:
    virtual void f() = 0;
};

class C: public B
{
public:
    virtual void f() {}
};
Run Code Online (Sandbox Code Playgroud)

per*_*ror 2

是的,这是合法的,因为根本没有相同的功能。该B::f()函数是 的重写A::f()。在这两种情况下都是虚拟的这一事实f()并未被考虑在内。