Rumah > pembangunan bahagian belakang > C++ > Bolehkah Operator [] Dibebankan Dua Kali untuk Akses Tatasusunan Dua Dimensi?

Bolehkah Operator [] Dibebankan Dua Kali untuk Akses Tatasusunan Dua Dimensi?

Barbara Streisand
Lepaskan: 2024-12-30 09:19:14
asal
472 orang telah melayarinya

Can the [] Operator Be Overloaded Twice for Two-Dimensional Array Access?

Operator[][] Overload untuk Tatasusunan Dua Dimensi

Persoalannya timbul: bolehkah operator [] dibebankan dua kali untuk mendayakan tatatanda seperti function3 untuk tatasusunan dua dimensi?

Jawapan: Ya, Ia Kemungkinan

Untuk mencapai ini, seseorang boleh membebankan operator[] untuk mengembalikan objek yang menawarkan pengendali [] lain untuk mengakses elemen yang diingini. Berikut ialah kod contoh:

class ArrayOfArrays {
public:
    ArrayOfArrays() {
        _arrayofarrays = new int*[10];
        for(int i = 0; i < 10; ++i)
            _arrayofarrays[i] = new int[10];
    }

    class Proxy {
    public:
        Proxy(int* _array) : _array(_array) { }

        int operator[](int index) {
            return _array[index];
        }
    private:
        int* _array;
    };

    Proxy operator[](int index) {
        return Proxy(_arrayofarrays[index]);
    }

private:
    int** _arrayofarrays;
};
Salin selepas log masuk

Ini membenarkan penggunaan seperti:

ArrayOfArrays aoa;
aoa[3][5];
Salin selepas log masuk

Perhatikan bahawa perkara di atas ialah contoh ringkas; semakan sempadan tambahan dan ciri lain biasanya akan dilaksanakan.

Atas ialah kandungan terperinci Bolehkah Operator [] Dibebankan Dua Kali untuk Akses Tatasusunan Dua Dimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan