template <typename Object> const Object & operator *()const; /*坦白地说,要讲清楚可不容易。const用法太多了。 这里的第一个const是修饰Object的,表示Object不能被更改,是const(常量)。 第二个const是类的成员函数专用的。表示不能更改成员变量的值。(涉及this指针) &可以表示取地址和引用,这里表示引用。引用可以理解成别名。 const Object &就是一个指向不能改变的Object的引用。用引用作函数返回值这样做的好处很多,除了可以做左值,而且可以避免生成临时变量。不要被这些术语吓倒哦!以后就会明白的。 推荐Lippman的C++ Primer/Essential C++或者Thinking in C++。 */
4
3
不加前面的const就会有可能被修改,如 #include "iostream" using namespace std; struct t { int a; t() : a(100){} int& get() { return a; } }; int main() { t a; int& b = a.get(); b = 200; return 0; }