[我正在研究一个简单的Vector
类的实现,该类形成了一个恒定大小的双精度数组的容器(遵循A Tour of C++第51页的示例)。我的问题是方法int size() const
。用这种方式而不是const int size()
来定义它很奇怪。两者似乎都起作用。有人知道其中的区别吗?
下面是类声明和Vector::size()
的定义。
class Vector{
public:
Vector(int);
Vector(std::initializer_list<double>);
~Vector(){delete[] elem;}
double& operator[](int);
int size() const;
private:
int sz;
double* elem;
};
int Vector::size() const{
return sz;
}
[请注意:1. const int foo();
表示:foo返回const整数值2. int foo() const
表示:foo返回整数值,并且不做任何修改。
这在某种程度上符合从右读的方法-请注意@ 2是const函数。 @ 1中的linter会告诉您,返回值const将被忽略。