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
441 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!

sumber:php.cn
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