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

标签 c++ operator-overloading constants

假设我在一个类中声明了下标运算符

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

在什么情况下调用第二次重载。是否仅通过 const 对象 调用。

以下场景会调用哪个版本的operator。

const char res1 = nonConstObject[10]; 
nonConstObject[10];

最佳答案

第一个被调用。不要被返回值弄糊涂了;只有参数被认为是选择方法。在这种情况下,隐式 this 是非常量,因此调用非常量版本。

关于c++ - 将调用哪个重载版本的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134943/

相关文章:

c++ - 运算符重载 C++ - 重载输出 "<<"运算符

c++ - 重载 [] 运算符并引用对象本身

dart - dart 中 `const [' foo', 'bar' ]` 中 const 的含义

c - 在函数内使用 const 和 static const 的速度有区别吗?

c++ - 如何用 lambda 排序?

c++ - 如何动态翻译qt应用程序?

c++ - 检查 vector 中数字的任何组合是否会加起来为 int 的函数?

F# 运算符重载之谜

c++ - 未从命令行输入内容时 Argv 的值

c++ - 使用 boost 库编译 C++ 代码