Why does a virtual function get hidden?

前端 未结 6 897
無奈伤痛
無奈伤痛 2020-12-01 15:52

I have the following classes:

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


class B : public A{
public:
    void f(int x) {}
};

If I say

6条回答
  •  余生分开走
    2020-12-01 16:34

    Class B does not derive from A so no function F() exists. You probably meant:

    class A {
    public:
        virtual void f() {}
    };
    
    
    class B : public A {
    public:
        void f(int x) {}
    };
    

    Edit: I missed the actual function hiding. See Steve Jessop answer for more thorough explanation.

提交回复
热议问题