在什么条件下调用常量解引用运算符?

时间:2016-03-27 18:30:20

标签: c++ class operator-overloading dereference

我有一个简单的课程

if(indexPath.row == selectRow) {
    myCell.detailTextLabel?.text = self.updateTimer()
}

我的问题是,class Array { public: Array(); ~Array(); // Dereferencing operators int operator[](std::size_t index) const; int& operator[](std::size_t index); } 在什么条件下被调用?如何强制C ++调用int operator[](std::size_t index) const而不是int operator[](std::size_t index) const?如果我只实现其中一个运算符会发生什么?

1 个答案:

答案 0 :(得分:1)

  

我的问题是,在什么条件下调用int operator [](std :: size_t index)const?

当它在const的实例上调用时是

  

如何强制C ++调用int operator [](std :: size_t index)const而不是int& operator [](std :: size_t index)?

将数组的可变实例强制转换为const引用

  

如果我只实现其中一个运算符会发生什么?

如果只实现const 1,则无法使用operator[]写入下标。

如果只实现非常量的,则无法读取数组的const实例的下标。