У меня есть вопрос о перегрузке операторов индексов по ссылке, как показано в следующем коде:
#include <iostream>
#include <array>
using namespace std;
class NewArray
{
public:
typedef array<int, 1024> array_type;
typedef int& reference;
reference operator[](const int i) {
return array_[i];
}
private:
array_type array_;
};
int main(){
NewArray lhs, rhs;
rhs[10] = 1000; // Assigning value to rhs[10]
lhs[10] = rhs[10]; // Arrays references are the same
rhs[10] = 0; // Modifying reference
cout << lhs[10] << " " << rhs[10] << endl;
return 0;
}
Учитывая, что я возвращаю ссылки на позицию массива, а также lhs [10] и rhs [10] ссылки равны, не должно ли вывод быть
0 0
вместо
1000 0
?