假设我已在类
中声明了下标运算符char& operator[] (int index);
const char operator[](int index) const;
在什么条件下调用第二个重载。它是否只通过const object
调用。
在以下场景中将调用哪个版本的运算符。
const char res1 = nonConstObject[10];
nonConstObject[10];
答案 0 :(得分:13)
第一个叫。不要对返回值感到困惑;只考虑参数来选择方法。在这种情况下,隐式this
是非const的,因此调用非const版本。
答案 1 :(得分:-1)
常量方法只能从常量实例中调用。由于nonConstObject未定义为const,因此两个调用都将是非const重载运算符。