Перегрузка оператора индекса в массивах по ссылке - PullRequest
0 голосов
/ 19 марта 2020

У меня есть вопрос о перегрузке операторов индексов по ссылке, как показано в следующем коде:

#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

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...