为什么我不能覆盖虚函数?

问题描述 投票:1回答:1

我试图覆盖Vector_container中的size函数,但是IDE告诉我“标记为'override'的非虚拟成员函数会隐藏虚拟成员函数”

class Container {
public:
    virtual double& operator[](int) = 0;     // pure virtual function
    virtual int size() const = 0;            // const member function (§4.2.1)
    virtual ~Container() {}                  // destructor (§4.2.2)
};


class Vector_container : public Container {   // Vector_container implements Container
public:
    Vector_container(int s) : v(s) { }   // Vector of s elements
    ~Vector_container() {}

    double& operator[](int i) override { return v[i]; }
    int size() override { return v.size(); }
private:
    Vector v;
};

但是它不是虚拟函数吗?

c++
1个回答
0
投票
您忘记添加const添加结尾。
© www.soinside.com 2019 - 2024. All rights reserved.