可能重复:
C++方法声明中"const"的含义是什么?
我有一本书,里面写着:
class Foo
{
public:
int Bar(int random_arg) const
{
// code
}
};
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
这样的事情之间有什么区别
friend Circle copy(const Circle &);
Run Code Online (Sandbox Code Playgroud)
和这样的事情
friend Circle copy(Circle&) const;
Run Code Online (Sandbox Code Playgroud)
我知道const后,函数被用来告诉编译器这个函数不会尝试更改它被调用的对象,那么另一个呢?
我试图覆盖 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)
但它不是一个虚函数吗?