小编Les*_*ter的帖子

为什么我无法覆盖虚拟功能?

我试图覆盖 Vector_container 中的大小函数,但 IDE 告诉我“标记为‘覆盖’的非虚拟成员函数隐藏虚拟成员函数”

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;
};
Run Code Online (Sandbox Code Playgroud)

但它不是一个虚函数吗?

c++ polymorphism inheritance overriding constants

6
推荐指数
1
解决办法
1403
查看次数

标签 统计

c++ ×1

constants ×1

inheritance ×1

overriding ×1

polymorphism ×1