c++ virtual const T& Entry(int index) const;

为什么有两个const,分别代表什么
c++ virtual const T& Entry(int index) const;

第一个const说的是返回值,返回的是一个常量引用,不能修改;
后一个const是表示this指针指向的是const,
表明该函数不会改成员函数的值!该函数可以被常量对象访问(const)。

第一个const代表返回类型是const类型。为什么要定义为const的?举个例子:一般都是c=a+b;也是说a+b一般作为右值。但是如果a+b的返回类型不为const,那么可能出现a+b=c的情况。这种情况是不符合常理的。
所以有必要声明为const类型。第二个const表示Entry函数体内部,不可以修改成员变量的值。否则会报错。