我试图在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;
};
但这不是虚函数吗?
size()
函数应该返回size_t
而不是int
。 - ChrisMM