将调用哪个重载版本的运算符

Yog*_*ora 4 c++ const operator-overloading

假设我已经在类中声明了下标运算符

  1. char& operator[] (int index);
  2. const char operator[](int index) const;

在什么条件下调用第二个重载.它只是通过一个叫做const object.

在以下场景中将调用哪个版本的运算符.

const char res1 = nonConstObject[10]; 
nonConstObject[10];
Run Code Online (Sandbox Code Playgroud)

fni*_*eto 13

第一个被称为.不要对返回值感到困惑; 只考虑参数来选择方法.在这种情况下,隐式this是非const的,因此调用非const版本.