尾置const:参数列表相同却重载的函数
观察下面两个函数,它们具有相同的参数列表,貌似无法重载:
- string& operator[](size_t n) {
return elements[n];
}
2. const string& operator(size_t n) const {
return elements[n];
}
但实际上,函数2的尾置const使得对*this进行了筛选,于是:
当非const对象调用时,匹配1;
而const对象调用时,匹配2;
从而实现了重载。
ps:函数1,2事实上实现了下标运算符常量版本与非常量版本的重载。

浙公网安备 33010602011771号